2013-05-15 5 views
0

I는 같다 정수리스트 가지고찾기 및 텍스트 파일로 대체

를 I = 1,020 1,022 ...]

I는이 .txt로 저장되어있는 XML 파일을 열어야

각 항목은 내가 목록 항목과 "Keys1029"각 숫자를 대체 레코드를 반복 할 필요가

Settings="Keys1029"/> 

포함한다. 그래서 대신에있는의 :

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

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

하지만 난 받고 있어요 : 지금까지 내가 가지고

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

을 :

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

을 우리는 가지고

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