以下是一个示例解决方案,其中演示了如何保留最新版本并删除旧版本。
import os
def keep_latest_versions(directory, num_versions_to_keep):
# 获取目录中的所有文件
files = os.listdir(directory)
# 根据文件的修改时间进行排序
files.sort(key=lambda x: os.path.getmtime(os.path.join(directory, x)))
# 确保要保留的版本数不超过文件总数
num_versions_to_keep = min(num_versions_to_keep, len(files))
# 删除旧版本
for i in range(len(files) - num_versions_to_keep):
file_path = os.path.join(directory, files[i])
os.remove(file_path)
print("已删除旧版本:", file_path)
# 示例用法
directory = "/path/to/directory" # 替换为你的目录路径
num_versions_to_keep = 5 # 替换为要保留的版本数
keep_latest_versions(directory, num_versions_to_keep)
上述代码使用os.listdir
函数获取目录中的所有文件,并使用os.path.getmtime
函数获取文件的最后修改时间。然后,根据修改时间对文件进行排序,确保最新版本位于列表的末尾。接下来,根据要保留的版本数,删除列表开头的旧版本文件。删除文件时,使用os.remove
函数删除文件,并打印已删除的文件路径。
请注意,上述代码仅演示了保留最新版本并删除旧版本的基本逻辑。你可能需要根据实际需求进行修改和扩展,例如添加错误处理、排除特定文件类型等。