2013-05-15 193 views
0

我看起來像一列整數:查找和文本文件替換

I = [1020 1022 ....]

我需要打開被存儲爲.TXT XML文件,其中每個條目包括

Settings="Keys1029"/> 

我需要迭代通過記錄替換「Keys1029」中的每個數字與列表條目。 ,使而不是:

....Settings="Keys1029"/> 
....Settings="Keys1029"/> 

我們:

....Settings="Keys1020"/> 
....Settings="Keys1022"/> 

到目前爲止,我有:

out = [1020 1022 .... ] 
text = open('c:\xml1.txt','r') 

for item in out: 
    text.replace('1029', item) 

,但我發現:

text.replace('1029', item) 
AttributeError: 'file' object has no attribute 'replace' 

可能有人建議我如何解決這個問題?

謝謝

比爾

回答

3

open()返回你不能使用它的字符串操作一個文件對象,你已經爲使用readlines()read()來從文件對象的文本。

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("1029",str(item),1) 
    f2.write(text) 
#rename that temporary file to real file 
os.rename('c:\somefile.txt','c:\xml1.txt') 
+1

不會'文本= text.replace( 「1029」,STR(項))'替換*所有*的'1029'出現,因此不會在剩餘的號碼做任何事'out'列表? –

+0

@WesleyBaugh好點,固定。 –

+0

謝謝韋斯利 - – user61629