无需编写新文件即可修改Python文件对象

时间:2014-07-25 15:03:14

标签: python file python-2.7 elementtree

我希望能够在开头添加一行,在xml文件对象的末尾添加一行,然后使用ElementTree解析该对象。

我可以读取该文件,然后使用新行将文件写回,然后将其读回并解析它,但重新读取文件似乎很蠢。

是否可以在适当的位置修改此文件对象?

1 个答案:

答案 0 :(得分:2)

您是否注意到ElementTree.ElementTree还有fromstring()方法?

lines = open("/path/to/file.xml").readlines()
lines.insert(0, "<something>")
lines.append("</something>")
xml = "".join(lines)
tree = ElementTree.fromstring(xml)

或者(对大文件更有效 - 感谢chepner):

with open("/path/to/file.xml") as source: 
    xml = "".join(itertools.chain(["<something>"], source, ["</something>"]))
# etc...