欢迎访问宙启技术站
智能推送

使用Python编写一个定时清理文件的脚本

发布时间:2023-12-24 04:21:26

以下是一个使用Python编写的定时清理文件的脚本,同时附带一个使用例子:

import os
import time

def delete_files(directory, file_extensions, age):
    # 获取当前时间
    current_time = time.time()

    # 遍历指定目录下的文件和文件夹
    for root, dirs, files in os.walk(directory):
        for file in files:
            file_path = os.path.join(root, file)
            file_extension = os.path.splitext(file_path)[1]

            # 检查文件扩展名和创建时间
            if file_extension in file_extensions:
                creation_time = os.path.getctime(file_path)

                # 计算文件的年龄
                file_age = current_time - creation_time

                # 删除一年前的文件
                if file_age > age:
                    os.remove(file_path)
                    print(f"Deleted file: {file_path}")

# 设置目录、文件扩展名和文件的最大年龄
directory = "/path/to/directory"
file_extensions = [".txt", ".csv"]
max_age = 365 * 24 * 60 * 60  # 一年的秒数

# 调用函数进行清理
delete_files(directory, file_extensions, max_age)

上述脚本中的delete_files函数用于删除指定目录下的特定扩展名的一定年龄以上的文件。该函数接受三个参数:directory表示要清理的目录,file_extensions表示要清理的文件扩展名列表,age表示最大年龄(单位为秒)。根据这些参数,函数将遍历指定目录,获取每个文件的创建时间,然后判断文件是否符合清理条件(扩展名和年龄),如果符合条件,则删除该文件。

使用例子:

假设我们有一个名为/path/to/directory的目录,其中包含了许多扩展名为.txt.csv的文件。我们希望删除所有这些文件中一年前创建的文件。我们可以将上述脚本保存为cleanup.py文件,然后在终端中运行以下命令来执行清理操作:

python cleanup.py

执行命令后,脚本将遍历指定目录中的文件,并删除所有扩展名为.txt.csv的一年前创建的文件,并在终端中输出已删除的文件的路径。

请注意,为了避免意外删除重要文件,在使用此脚本时,请确保目录、文件扩展名和文件的最大年龄的设置是正确的,并且在执行之前对要删除的文件进行备份。