gpt4 book ai didi

Python:写入 xml 文件时丢失内容

转载 作者:太空宇宙 更新时间:2023-11-03 15:04:30 25 4
gpt4 key购买 nike

我使用 python3.5 和 lxml(有时还有 minidom)来写入和读取 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 方法来写入文件,这可能会生成一个空白文件,尤其是在您的示例中。

检查您是否正在对 lxml tree 对象使用 write() 方法和用于 minidom 对象的 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()

您可以添加一些 try/except 语句来避免代码中的错误产生这种影响,但如果您在写入时切断进程=>空白文件

关于Python:写入 xml 文件时丢失内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44776776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com