2012-05-11 2 views
1

完全なファイルを書き込まずに要素field1.textのテキストだけを変更するにはどうすればよいですか? (Python 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バイトを挿入するとそのポイントの後ろに1バイトが変更されるため、特殊なファイルフォーマット(データベースなど)が必要になります。 XMLはこのように設計されていないため、ファイル全体を書き込むことは、あなたが与える例のような編集を行う通常の方法です。

+1

ファイル形式に関する良い点。非常に大きなファイルに対して常に小さな変更を加えることを目標とする場合は、xmlのようなシリアライズされた形式は適切ではありません。それはデータベース内にあり、最終配信形式としてのみシリアル化されている必要があります。 – jdi

関連する問題