import os import zipfile from datetime import datetime def backup_topic(): # 源目录路径 source_dir = r'd:\dsWork\dsProject\dsLightRag\Topic' # 备份目录路径 backup_dir = r'D:\dsWork\dsProject\dsLightRag\Backup' # 创建备份目录(如果不存在) os.makedirs(backup_dir, exist_ok=True) # 生成带时间戳的文件名 timestamp = datetime.now().strftime('%Y%m%d%H%M%S') zip_filename = f'{timestamp}.zip' zip_path = os.path.join(backup_dir, zip_filename) # 以最高压缩率创建ZIP文件 with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED, compresslevel=9) as zipf: # 遍历源目录中的所有文件和子目录 for root, dirs, files in os.walk(source_dir): for file in files: file_path = os.path.join(root, file) # 计算相对路径,避免在ZIP中包含绝对路径 relative_path = os.path.relpath(file_path, source_dir) zipf.write(file_path, arcname=relative_path) print(f"备份完成: {zip_path}") if __name__ == "__main__": backup_topic()