我目前有一个Python脚本,它解析一个文件(在本例中是一个XML文件),并根据多个数组的值进行必要的逐行替换。从现在的情况来看,剧本很不错,但感觉可能会更好。稍后我还需要再添加几个数组,并且担心性能
另外,我目前的设置方式不允许计算和打印已完成的全部替换(e、 g.“Replaced:xyz--madexx replacements”)虽然不是即时需求,但我希望在将来添加此功能
如有任何建议,我将不胜感激
代码如下:
arrayOne = ["old string one", "new string one"]
arrayTwo = ["old string two", "new string two"]
# Variable 'path' collected from command line input
f = open(path, "r", encoding="utf8")
newFile = open(path.replace(".xml", "-new.xml"), "w", encoding="utf8")
def replace(a,b):
for data in f:
for datatype in (arrayOne, arrayTwo):
data = data.replace(datatype[a], datatype[b])
newFile.write(data)
newFile.close()
replace(0,1)
f.close()
我认为它看起来相当有效,虽然有点混乱。我想说,用一堆数组试试,看看性能是否有问题。如果您有大量的数组,并且必须像现在一样列出它们,那么它可能会变得混乱。我个人认为我应该把它们都放在一本大字典里,以“旧字符串”为关键。下面我就是这么做的
至于最后的打印行,我想通过一个计数器就足够了,如下所示
另外,现在我认为不需要
replace
作为一个单独的函数,除非您计划让它做一些更复杂的事情相关问题 更多 >
编程相关推荐