2012-05-11 5 views
1

전체 파일을 작성하지 않고 field1.text 요소의 텍스트 만 변경하려면 어떻게해야합니까? (파이썬 2.5).요소의 텍스트를 변경하는 방법

import xml.etree.cElementTree as ET 
import urllib2 
import os 

file("c:\Python25\wxTime.xml", 'w') 
root = ET.Element("root") 
doc = ET.SubElement(root, "doc") 
field1 = ET.SubElement(doc, "wxpageTime") 
field1.set("name", "lastUpdate") 
field1.text = "Thu May 10 02:00:00 2012" 
tree = ET.ElementTree(root) 
tree.write("c:\Python25\wxTime.xml") 
+1

파일의 변경 사항이 완전히 동일한 바이트 수가 아닌 경우 편집 후에 모든 내용을 변경하므로 파일을 다시 작성해야합니다. – jdi

답변

1

일반적으로 할 수 없습니다. 당신은 할 수있는 파싱의 양을 줄일 수는 있지만, @jdi 노트처럼, 1 바이트를 삽입하면 그 시점 이후의 모든 바이트가 변경되므로 특수한 특수 파일 형식 (예 : 데이터베이스)이 필요합니다. XML은 이러한 방식으로 설계되지 않았으므로 전체 파일을 다시 작성하는 것은 사용자가 제공 한 예제와 같이 편집하는 일반적인 방법입니다.

+1

파일 형식에 대한 좋은 점. 목표가 매우 큰 파일에 대해 작은 변경을 지속적으로 수행하는 것이라면 xml과 같은 직렬화 된 형식은 적절하지 않습니다. 그것은 데이터베이스에 있어야하며 최종 전달 형식으로 만 직렬화되어야합니다. – jdi

관련 문제