此技能用于处理游戏相关的文件和任务,适用于游戏文件夹整理、资源备份、游戏数据记录等场景。
import os
import shutil
from datetime import datetime
def organize_game_files(game_folder, output_folder):
"""整理游戏文件夹"""
os.makedirs(output_folder, exist_ok=True)
extensions = {
'images': ['.png', '.jpg', '.jpeg', '.gif', '.bmp'],
'videos': ['.mp4', '.avi', '.mkv', '.mov'],
'audio': ['.mp3', '.wav', '.ogg'],
'docs': ['.txt', '.pdf', '.docx'],
'data': ['.json', '.xml', '.csv', '.xlsx']
}
for filename in os.listdir(game_folder):
filepath = os.path.join(game_folder, filename)
if os.path.isfile(filepath):
ext = os.path.splitext(filename)[1].lower()
for category, exts in extensions.items():
if ext in exts:
dest = os.path.join(output_folder, category, filename)
shutil.copy2(filepath, dest)
break
def batch_rename(folder, pattern, prefix='', suffix=''):
"""批量重命名文件"""
import re
for filename in os.listdir(folder):
filepath = os.path.join(folder, filename)
if os.path.isfile(filepath):
new_name = f"{prefix}{pattern}{suffix}{os.path.splitext(filename)[1]}"
new_path = os.path.join(folder, new_name)
os.rename(filepath, new_path)
def backup_saves(save_folder, backup_location):
"""备份游戏存档"""
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
backup_name = f"save_backup_{timestamp}"
backup_path = os.path.join(backup_location, backup_name)
shutil.copytree(save_folder, backup_path)
return backup_path
def create_game_log(games_data, output_file):
"""创建游戏记录文件"""
import json
log = {
'created': datetime.now().isoformat(),
'games': games_data
}
with open(output_file, 'w', encoding='utf-8') as f:
json.dump(log, f, ensure_ascii=False, indent=2)
def generate_game_report(game_folder, output_file):
"""生成游戏文件夹分析报告"""
report = {
'folder': game_folder,
'total_files': 0,
'by_type': {},
'total_size': 0
}
for root, dirs, files in os.walk(game_folder):
for f in files:
report['total_files'] += 1
ext = os.path.splitext(f)[1] or 'no_ext'
report['by_type'][ext] = report['by_type'].get(ext, 0) + 1
filepath = os.path.join(root, f)
report['total_size'] += os.path.getsize(filepath)
report['total_size_mb'] = report['total_size'] / (1024 * 1024)
with open(output_file, 'w', encoding='utf-8') as f:
json.dump(report, f, ensure_ascii=False, indent=2)
return report
用户: 帮我整理D:\games文件夹,按文件类型分类
执行:
1. 扫描D:\games文件夹
2. 按图片、视频、音频、文档、数据分类
3. 创建对应子文件夹
4. 整理文件
用户: 备份我的游戏存档
执行:
1. 定位存档文件夹
2. 创建带时间戳的备份
3. 返回备份位置
用户: 分析一下这个游戏文件夹的情况
执行:
1. 统计文件数量
2. 按类型分组统计
3. 计算总大小
4. 生成报告
| 游戏平台 | 默认位置 |
|---|---|
| --------- | --------- |
| Steam | C:\Program Files (x86)\Steam\userdata |
| Epic | C:\ProgramFiles\EpicGames |
| 育碧 | C:\Users\用户名\Documents\My Games |
| 独立游戏 | 游戏安装目录\saves |
共 1 个版本