本帖最后由 绿色风暴 于 2024-8-14 11:20 编辑
SREF-E-10 发表于 2024-8-14 11:08
手搓吧 :D 做一个注册一个好像也不是那么麻烦
不过听说Ares环境下新注册的序号好像是可以省略写成+, ...
谢谢,刚刚让ChatGPT帮我写了一个,亲测可用:
import re
from collections import defaultdict
# 初始化存储注册表数据的字典
registry = defaultdict(list)
# 规则字典,包含字符串及对应的注册表名称
rules = {
'超武': 'SuperWeaponTypes',
'武器': 'WeaponTypes',
'弹头': 'Warheads',
'抛体': 'Projectiles',
'动画': 'Animations',
'步兵': 'InfantryTypes',
'建筑': 'BuildingTypes',
'载具': 'VehicleTypes',
'飞机': 'AircraftTypes',
'隧道': 'TunnelTypes',
'护盾': 'ShieldTypes',
'数显': 'DigitalDisplayTypes',
}
# 读取INI文件内容,指定编码为 utf-8
with open('input.ini', 'r', encoding='utf-8') as file:
lines = file.readlines()
# 遍历INI文件的每一行
for line in lines:
# 使用正则表达式查找项目名称([]之间的内容)
match = re.match(r'\[(\w+)\]', line)
if match:
item_name = match.group(1)
# 根据规则判断该行属于哪个注册表
for keyword, registry_name in rules.items():
if keyword in line:
registry[registry_name].append(item_name)
break
# 输出结果到 output.ini 文件
with open('output.ini', 'w', encoding='utf-8') as file:
for key, items in registry.items():
file.write(f'[{key}]\n')
for item in items:
file.write(f'+={item}\n')
file.write('\n') |