以下是一个示例代码,用于比较旧目录和新目录,并重新压缩已更改的文件:
import shutil
import os
def compare_and_compress(old_dir, new_dir, output_dir):
# 创建输出目录
os.makedirs(output_dir, exist_ok=True)
# 遍历新目录中的文件
for root, dirs, files in os.walk(new_dir):
for file in files:
new_file_path = os.path.join(root, file)
old_file_path = new_file_path.replace(new_dir, old_dir)
# 检查旧目录中是否存在相同的文件
if os.path.exists(old_file_path):
# 比较两个文件的修改时间
new_file_mtime = os.path.getmtime(new_file_path)
old_file_mtime = os.path.getmtime(old_file_path)
# 如果新文件的修改时间比旧文件晚,则将新文件复制到输出目录中
if new_file_mtime > old_file_mtime:
output_file_path = os.path.join(output_dir, file)
shutil.copy2(new_file_path, output_file_path)
print(f"Compressed file: {output_file_path}")
# 示例用法
old_directory = "/path/to/old_directory"
new_directory = "/path/to/new_directory"
output_directory = "/path/to/output_directory"
compare_and_compress(old_directory, new_directory, output_directory)
这个示例代码会比较旧目录和新目录中的文件,如果新目录中的文件的修改时间比旧目录中的文件晚,就会将新文件复制到输出目录中。你可以根据需要修改输出目录的路径和其他细节。