Python - 将文件移动到创建和修改日期命名的目录
我们都知道根据文件的创建和修改日期来管理文件是多么重要。因此,在本文中,我们将尝试构建一个Python脚本,该脚本将根据文件的创建和修改日期将所有文件移动到新目录。基本上,它会查找目录,如果找到,它将从该文件夹中提取所有文件,删除该文件夹,然后按创建日期排列它们。
正在使用的文件夹:
图片显示所有文件和文件夹都没有正确处理。该脚本将首先从目录中提取所有文件,例如名为 Hey 的文件。然后它将按时间顺序对所有文件进行排序。
在这里,我们将使用 Python 的一些最重要的模块,例如shutil 、 glob等。以下是有关模块的更多信息:
- glob: glob 模块用于查找与模式匹配的文件/路径名。还预计,根据基准,它会比以前的技术更快地匹配路径名。
- shutil : Python Shuutil 模块提供了各种方法来对文件和文件组执行高级操作。它是 Python 的标准实用程序模块之一。该模块有助于自动复制和删除文件和文件夹。
方法
- 要根据修改日期更改目录并移动到您希望放置所有文件的目录,请使用os.chdir函数。
- 要列出所有文件夹和文件,请使用os.listdir函数。
- 要获取当前工作目录,请使用os.getcwd方法。
- 运行一个循环来遍历目录内外的所有文件。
- 要存储所有文件实例,请使用glob.glob函数。它将获取文件名或文件路径并搜索其中存在的所有文件。
句法:
glob.glob(any_file_name or file_path+”\\”*) #
- 我们可以通过使用shutil.move方法简单地将文件从一个位置移动到另一个位置。传递要移动的文件名和要移动的路径。
句法:
shutil.move(file to be moved, Path where file is to be moved)
- 从文件夹中删除文件后,使用shutil.rmtree方法删除文件夹。在shutil.rmtree函数中传递要删除的文件名。
句法:
shutil.rmtree(file to be remove/delete)
- 再次设置循环以遍历所有文件。
- 使用time.gmtime以结构形式检索有关文件创建和修改的所有数据。
- 然后,一一提取年、月、日。
- 运行 If 条件以查看该文件夹是否已创建;如果没有,请使用文件的创建日期作为名称创建它。
- 最后,使用shutil.move函数,将所有文件一一移动到新形成的文件夹中。
程序:
Python3
# Import the following modules
import os
import time
import shutil
import datetime
import glob
# Change the directory and jump to the location
# where you want to arrange the files
os.chdir(r"C:\Users\Dell\Downloads\FireShot")
# List the directories and make a list
all_files = list(os.listdir())
# Get the current working directory
outputs = os.getcwd()
# Run a loop for traversing through all the
# files in the current directory
for files in all_files:
try:
# Jump to the directories files
inputs = glob.glob(files+"\\*")
# Now again run a loop for travering through
# all the files inside the folder
for ele in inputs:
# Now, move the files one-by-one
shutil.move(ele, outputs)
# After extracting files from the folders,
# delete that folder
shutil.rmtree(files)
except:
pass
# Again run a loop for traversing through all the
# files in the current directory
for files in os.listdir('.'):
# Get all the details of the file creation
# and modification
time_format = time.gmtime(os.path.getmtime(files))
# Now, extract only the Year, Month, and Day
datetime_object = datetime.datetime.strptime(str(time_format.tm_mon), "%m")
# Provide the number and find the month
full_month_name = datetime_object.strftime(
"%b")
# Give the name of the folder
dir_name = full_month_name + '-' + \
str(time_format.tm_mday) + "-" + \
str(time_format.tm_year)
# Check if the folder exists or not
if not os.path.isdir(dir_name):
# If not then make the new folder
os.mkdir(dir_name)
dest = dir_name
# Move all the files to their respective folders
shutil.move(files, dest)
print("Suceessfully moved...")
输出: