Python:编写XML文件时丢失内容



我正在使用python3.5和lxml(以及有时的微型(来写和读取XML文件。

我有多个进程可以读取和编写相同的XML文件,有时该文件完全空白。当我手动关闭过程时,这会发生。

这是修改XML的函数的示例:

from lxml import etree as le
file = open("generalList.xml", 'r')
tree = le.parse(file)
file.close()
for bad in tree.xpath("//unit"):
   ip = bad[0].text
   if ip == data[1]:
      bad.getparent().remove(bad)
file = open("generalList.xml", 'wb')
tree.writexml(file)
file.close()

有没有办法避免这个问题?

您的示例可能不完整,但是看起来您混合了minidom和LXML方法来编写文件,并且可能会产生一个空白文件,尤其是在您的示例中。

检查您是否正在使用 write()方法lxml tree对象和writexml()用于微型对象。

编辑:

了解可能发生的事情:

file = open("versions.xml", 'wb')  # file is blank
import time  # add this to take a moment to check the blank file in your folder
time.sleep(60)
# here,  if shit happens, you lose everything
tree.write(file) # then the file is written and I/O closed
file.close()

您可以添加一些尝试/除语句以避免使用该代码中的错误,但是如果您在写作时剪切=>空白文件

相关内容

  • 没有找到相关文章

最新更新