1 Star 0 Fork 0

Sworld/ModsHelper_old_to_new

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
old_to_new.py 2.50 KB
一键复制 编辑 原始数据 按行查看 历史
Sworld 提交于 2020-05-22 09:23 +08:00 . 写下想法
import os
ver = '0.0.0'
'''想法:
可以把输入“老的未汉化文件”删去,直接读取新的文件,用string.split("=")来分割,只需要汉化后的文件进行比对
'''
def main():
ls = []
try: # 读取新旧未汉化文件
file1 = open(input("请给出老的未汉化的文件名:"), mode="r", encoding='UTF-8')
old_one = list(file1.readlines())
old_one[-1] = old_one[-1]+'\n' # 使用这个是为了防止文档底部的文字没有\n导致无法匹配
file1.close
file1 = open(input("请给出新的未汉化的文件名:"), mode="r", encoding='UTF-8')
new_one = list(file1.readlines())
new_one[-1] = new_one[-1]+'\n'
file1.close
except FileNotFoundError:
print("文件不存在")
print("请重新输入\n")
return
# 寻找相同的行
for i in range(len(old_one)):
for j in range(len(new_one)):
if old_one[i] == new_one[j]:
ls.append((j, i)) # 前一个是新的位置,后一个是老的位置
try: # 读取旧的已汉化文件
file1 = open(input("请给出老的已汉化的文件名:"), mode="r", encoding='UTF-8')
old_one_ch = list(file1.readlines())
old_one_ch[-1] = old_one_ch[-1]+'\n'
file1.close
assert len(old_one) == len(old_one_ch)
except FileNotFoundError:
print("文件不存在")
print("请重新输入\n")
return
except AssertionError:
print("输入的汉化文件和未汉化文件长度不一")
return
print("一切无误,读取到了需要的三个文件\n接下来,创建新的汉化文件")
with open(input("请输入新文件的名字:"), mode="w", encoding='UTF-8') as new_one_ch_file:
new_one_ch = new_one
for i in ls:
new_one_ch[i[0]] = old_one_ch[i[1]]
new_one_ch_file.writelines(new_one_ch)
print("写入成功\n")
print(f'''
本程序由B站UP主"摸鱼任豚Sworld"或者"大世界小师"制作
目前版本是{ver}
本次工作已经完成,可以直接开始下一个工作
''')
if __name__ == "__main__":
print('''
程序使用指南:
本程序的功能是方便的把老版本的模组汉化覆盖到新版,仅此而已,纯属个人自娱自乐的玩具
按照提示直接输入名称即可,记得把该程序和待处理文件放在一个文件夹之下.如果要退出程序,
请按Ctrl + C,或者直接关闭程序窗口.
''')
while True:
main()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/sworldS/ModsHelper_old_to_new.git
git@gitee.com:sworldS/ModsHelper_old_to_new.git
sworldS
ModsHelper_old_to_new
ModsHelper_old_to_new
master

搜索帮助