📜  Python - 将文件移动到创建和修改日期命名的目录

📅  最后修改于: 2022-05-13 01:54:28.642000             🧑  作者: Mango

Python - 将文件移动到创建和修改日期命名的目录

我们都知道根据文件的创建和修改日期来管理文件是多么重要。因此,在本文中,我们将尝试构建一个Python脚本,该脚本将根据文件的创建和修改日期将所有文件移动到新目录。基本上,它会查找目录,如果找到,它将从该文件夹中提取所有文件,删除该文件夹,然后按创建日期排列它们。

正在使用的文件夹:

图片显示所有文件和文件夹都没有正确处理。该脚本将首先从目录中提取所有文件,例如名为 Hey 的文件。然后它将按时间顺序对所有文件进行排序。

在这里,我们将使用 Python 的一些最重要的模块,例如shutilglob等。以下是有关模块的更多信息:

  • glob: glob 模块用于查找与模式匹配的文件/路径名。还预计,根据基准,它会比以前的技术更快地匹配路径名。
  • shutil Python Shuutil 模块提供了各种方法来对文件和文件组执行高级操作。它是 Python 的标准实用程序模块之一。该模块有助于自动复制和删除文件和文件夹。

方法

  • 要根据修改日期更改目录并移动到您希望放置所有文件的目录,请使用os.chdir函数。
  • 要列出所有文件夹和文件,请使用os.listdir函数。
  • 要获取当前工作目录,请使用os.getcwd方法。
  • 运行一个循环来遍历目录内外的所有文件。
  • 要存储所有文件实例,请使用glob.glob函数。它将获取文件名或文件路径并搜索其中存在的所有文件。

句法:

  • 我们可以通过使用shutil.move方法简单地将文件从一个位置移动到另一个位置。传递要移动的文件名和要移动的路径。

句法:

  • 从文件夹中删除文件后,使用shutil.rmtree方法删除文件夹。在shutil.rmtree函数中传递要删除的文件名。

句法:

  • 再次设置循环以遍历所有文件。
  • 使用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...")


输出: