为了避免我的CSL再次崩溃导致存档丢失,一怒之下写了一个自动备份脚本,每次游戏挂在后台即可。启动时会自动使用上次最后的备份覆盖掉本地的配置和存档,然后每隔600s备份一次(推荐备份主文件夹而非单独的存档文件夹),每隔1小时上传至对象存储。需要修改的东西:Windows用户名、对象存储的设置、备份的路径,至于打包和配置文件,下次再写吧,又不是不能用(已经手生到快忘记基础语法的地步了,许久不用导致能力大幅下降XD
import time, os, shutil from qcloud_cos import CosConfig, CosS3Client source_path = "C:\\Users\\PC用户名\\AppData\Local\\Colossal Order" backup_path = "C:\\Users\\PC用户名\\Desktop\\Backup" class cos:     secret_id = 'SecretId'          secret_key = 'SecretKey'        region = 'ap-beijing'                                           token = None                    domain = None     config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Domain=domain)       client = CosS3Client(config) def recover_save():     file_list = os.listdir(backup_path)     backup_file = file_list[-1]     shutil.unpack_archive(backup_file, source_path) def compress_save():     local_time = time.strftime("%Y%m%d-%H%M",  time.localtime(time.time()))     archive_name = "Save-Backup-" + local_time     archive_file = shutil.make_archive(archive_name, 'zip', source_path)     shutil.copy2(archive_file, backup_path)     return archive_name def upload_cos():     file_list = os.listdir(backup_path)     backup_file = file_list[-1]     with open(backup_file, 'rb') as fp:         response = cos.client.put_object(             Bucket='test04-123456789',               Body=fp,             Key=backup_file,             StorageClass='STANDARD',             ContentType='text/html; charset=utf-8'         )         return response['ETag'] if __name__ == "__main__":     try:         recover_log = recover_save()         print(f"[INFO]成功恢复存档: {recover_log}")     except Exception as e:         print(f"[ERROR]{e}")     v = 0     while True:         try:             archive_name = compress_save()             print(f"[INFO]成功备份存档: {archive_name}")         except Exception as e:             print(f"[ERROR]{e}")         time.sleep(600)         v += 1         if v == 6:             try:                 upload_log = upload_cos()                 print(f"[INFO]成功上传存档:{upload_cos}")             except Exception as e:                 print(f"[ERROR]{e}")             v = 0
   | 
 
2025年5月18日更新:**游戏,毁我青春害我前途,我再玩我是狗