#!/usr/bin/env python # -*- coding: utf-8 -*- """ 给所有角色添加默认权重100的脚本 """ import os import json import logging # 配置日志 logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) logger = logging.getLogger('add_weights') # 卡牌文件路径 - 根据实际情况修改 CARDS_FILE = 'data/cards.json' def add_default_weights(): """给所有角色添加默认权重100""" try: # 确保文件存在 if not os.path.exists(CARDS_FILE): logger.error(f"文件不存在: {CARDS_FILE}") return False # 读取卡牌数据 with open(CARDS_FILE, 'r', encoding='utf-8') as f: cards_data = json.load(f) characters = cards_data.get('characters', []) logger.info(f"读取到 {len(characters)} 个角色") # 记录修改数量 updated_count = 0 # 为每个角色添加默认权重 for character in characters: if 'weight' not in character: character['weight'] = 100 updated_count += 1 logger.info(f"已为 {updated_count} 个角色添加默认权重100") # 如果有修改,保存回文件 if updated_count > 0: # 先创建备份 backup_file = f"{CARDS_FILE}.bak" with open(backup_file, 'w', encoding='utf-8') as f: json.dump(cards_data, f, ensure_ascii=False, indent=2) logger.info(f"已创建备份文件: {backup_file}") # 保存修改后的文件 with open(CARDS_FILE, 'w', encoding='utf-8') as f: json.dump(cards_data, f, ensure_ascii=False, indent=2) logger.info(f"已保存修改到文件: {CARDS_FILE}") return True else: logger.info("没有角色需要添加权重,所有角色都已有权重设置") return False except Exception as e: logger.error(f"添加默认权重失败: {str(e)}") return False def main(): """主函数""" logger.info("开始运行添加默认权重脚本") result = add_default_weights() if result: logger.info("脚本执行成功") else: logger.warning("脚本执行完成,但未进行修改或出现错误") if __name__ == "__main__": main()