Warhummer/add_weights_script.py
2025-06-25 09:35:26 +08:00

77 lines
2.5 KiB
Python

#!/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()