如何优化MCC API导出玩家名称到对应团队文件夹的Python代码?
简化MCC玩家数据写入的实现方案
核心优化思路
- 用循环遍历团队和玩家替代重复代码块
- 使用
with语句自动管理文件资源,避免手动调用close() - 提前解析API响应数据,避免重复解析浪费资源
完整代码实现
import requests import os # 定义团队列表:(API中的团队键名, 文件夹名称) TEAMS = [ ("RED", "Red"), ("ORANGE", "Orange"), ("YELLOW", "Yellow"), ("LIME", "Lime"), ("GREEN", "Green"), ("CYAN", "Cyan"), ("AQUA", "Aqua"), ("BLUE", "Blue"), ("PURPLE", "Purple"), ("PINK", "Pink") ] # 请求并解析API数据(只执行一次) response = requests.get("https://api.mcchampionship.com/v1/participants") participants_data = response.json()['data'] # 遍历每个团队 for team_key, folder_name in TEAMS: # 确保团队文件夹存在,不存在则创建 team_folder = f"./Players/{folder_name}" os.makedirs(team_folder, exist_ok=True) # 遍历团队下的玩家 for player_idx, player in enumerate(participants_data[team_key], start=1): # 拼接文件路径并写入玩家名称 file_path = f"{team_folder}/player{player_idx}.txt" with open(file_path, "w") as f: f.write(player['username'])
代码说明
- 团队列表统一管理:把API中的大写团队键和对应的文件夹名做映射,后续新增/修改团队只需调整这个列表
- 自动创建文件夹:用
os.makedirs(..., exist_ok=True)确保目标文件夹存在,避免因文件夹缺失报错 - 玩家序号自动生成:通过
enumerate(..., start=1)直接获取从1开始的玩家序号,对应player1.txt这类文件名 - 安全的文件操作:
with语句会自动处理文件的打开与关闭,避免资源泄漏问题
内容的提问来源于stack exchange,提问作者MountainTiger144
相关产品推荐
相关产品推荐

