我有一个整数列表,如下所示:
i = [1020 1022 ....]
我需要打开一个存储为.txt的xml文件,其中每个条目都包含
Settings="Keys1029"/>
我需要遍历记录,用“列表”条目替换“Keys1029”中的每个数字。所以,而不是:
....Settings="Keys1029"/>
....Settings="Keys1029"/>
我们有:
....Settings="Keys1020"/>
....Settings="Keys1022"/>
到目前为止,我有:
import os
out = [1020,1022]
with open('c:\xml1.txt') as f1,open('c:\somefile.txt',"w") as f2:
#somefile.txt is temporary file
text = f1.read()
for item in out:
text = text.replace("Keys1029","Keys"+str(item),1)
f2.write(text)
#rename that temporary file to real file
os.rename('c:\somefile.txt','c:\xml1.txt')
这正在取代:
....Settings="Keys1029"/>
....Settings="Keys1029"/>
与
....Settings="Keys1"/>
....Settings="Keys1"/>
知道我做错了吗?
提前谢谢你,
答案 0 :(得分:1)
我建议使用另一种更强大的算法:
text = """
bla bla bla 1029 and 1029
bla bla bla 1029
bla bla bla 1029 and 1029
"""
out = [1020,1022]
cnt_repl=0
while True:
text_new = text.replace("1029", str(out[cnt_repl%(len(out))]),1)
if text_new==text: break
cnt_repl+=1
text=text_new
print text
返回示例文本:
bla bla bla 1020 and 1022
bla bla bla 1020
bla bla bla 1022 and 1020