如题,模板文件是文本文档:emulated天魔缭乱,此文档中有两行中的数据是我们的替换目标,如图
此五位数字的前三位编号代表特定对象,后面是00指代对象本身,后面分布有01、02、03,例如图中13601则指代136对象的1号配件。
我们的目标是根据对象编号字典,生成对应的对象配件文件,每个对象需要生成3个配件文件,并根据字典对象编号对应的名称进行文件命名
资源:
模板文件:emulated天魔缭乱.txt
对象编号字典文件:hero代码.txt
目标生成文件:快枪手1号皮肤.lua(举例)
实现代码如下:
with open("hero代码.txt",'r') as f1:
index=f1.readlines()
a=len(index)
for i in range(a-1):
for j in range(3):
with open("emulated天魔缭乱.txt","r") as f2:
contents=f2.readlines()
contents[-3]='gg.searchNumber(":{0}00", gg.TYPE_BYTE, false, gg.SIGN_EQUAL, 0, -1)\n'.format(index[i][0:3]) #字符串动态数字变化用格式化输出
contents[-1]='gg.editAll(":{0}0{1}", gg.TYPE_BYTE)'.format(index[i][0:3],j+1) #变量
newfname=index[i][3:-1]+'{0}号皮肤.lua'.format(j+1)
with open(newfname,"w") as f3: #变量
f3.writelines(contents)
对三个文件进行操作只要12行代码,可见python语言之精简,虽然本身对代码行数进行了一定的优化,但python的精简处确实令人爱不释手,例如不需要使用字符串变量代替字符串使用,例如一切皆可装的列表,例如极简的文件操作函数使用,例如其简洁好用的format格式化输出,可十分方便地实现字符串内数字的变化,且格式化输出本身又可直接当作变量,这在c语言中一直让我比较头疼,用python当作数据文本处理工具使用是一绝