可以使用Python中的os模块和shutil模块来实现此操作。
首先,需要列出主文件夹中的所有文件并按日期排序。然后,可以将排序后的列表切片以仅保留最新的“n”个文件。最后,可以将剩余的文件移动到归档文件夹。
以下是一个示例代码,将前20个最新的文件保留在主文件夹中,其余文件移动到归档文件夹:
import os
import shutil
# 主文件夹路径
main_folder = '/path/to/main/folder'
# 归档文件夹路径
archive_folder = '/path/to/archive/folder'
# Max number of recent files to keep in main folder
n = 20
# 列出主文件夹中的所有文件,并按日期排序
files = sorted([(os.path.join(main_folder, fn), os.path.getmtime(os.path.join(main_folder, fn)))
for fn in os.listdir(main_folder)], key=lambda x: x[1], reverse=True)
# 保留排序后的前“n”个最新的文件,其余文件移动到归档文件夹
for i, (file, mtime) in enumerate(files):
if i < n:
continue
shutil.move(file, os.path.join(archive_folder, os.path.basename(file)))
此代码将遍历main_folder
中的所有文件,并按修改时间排序。接下来,它将列表切片,以便只保留最新的“n”个文件。最后,循环剩下的文件并将它们移动到archive_folder
中。
请注意,此代码仅移动文件名和扩展名相同的文件。如果需要区分文件名和扩展名,请使用os.path.splitext()
函数来获取文件名和