在Construct 2.8字段变得无名,我需要一个可以或多或少自动翻译的脚本,类似于2to3 python脚本。为了完全披露,我是维护者。这不仅适合我,也适合整个社区。 p>
需要翻译的内容:
ULInt32 -> Int32ub (actually its from {U,S}{B,L}Int{8,16,24,32,64})
field("name") -> "name" / field
Struct("name", ..., ...) -> "name" / Struct(..., ...)
(still adding...)
我之前使用的正则表达式工具:
#!/usr/bin/python3
import re, os, sys
def processfolder(top):
for root, dirs, files in os.walk(top):
for f in files:
if f.endswith('.py'):
processfile(os.path.join(root, f))
for d in dirs:
processfolder(os.path.join(root, d))
def processfile(fname):
print(fname+'... ', end='')
with open(fname, 'rt') as f:
txt = f.read()
txt = re.sub(r'???', lambda s: s.expand(r'\1'), txt)
with open(fname, 'wt') as f:
f.write(txt)
print('done')
processfolder(sys.argv[1])