Python 2.7.16 - ImportError:没有名为etree的模块.元素树



我正在制作一个脚本来执行创建和将数据写入XML文件。错误是没有模块没有模块名称

我指的是这个堆栈溢出链接,Python 2.5.4 - ImportError:没有名为etree的模块。元素树。https://stackabuse.com/reading-and-writing-xml-files-in-python/,我参考本教程。我仍然不明白解决方案是什么。我试图更换

"从元素树导入元素树">

"from xml.etree import ElementTree">

它仍然没有用。

#!/usr/bin/python
import xml.etree.ElementTree as xml
root = xml.Element("FOLDER")
child = xml.Element("File")
root.append(child)
fn = xml.SubElement(child, "PICTURE")
fn.text = "he32dh32rf43hd23"
md5 = xml.SubElement(child, "CONTENT")
md5.text = "he32dh32rf43hd23"
tree = xml.ElementTree(root)
with open(xml.xml, "w") as fh:
   tree.write(fh)

""我希望结果是数据被写入xml文件。但是我收到了如下所示的错误,

  File "./xml.py", line 2, in <module>
    import xml.etree.ElementTree as xml
  File "/root/Desktop/virustotal/testxml/xml.py", line 2, in <module>
    import xml.etree.ElementTree as xml
```ImportError: No module named etree.ElementTree

import xml.etree.ElementTree as xml

如果您使用自己的XML模块,请确保__init__.py文件位于同一文件夹中,请避免路径冲突。

然后它会起作用。

etree包由"ElementTree"和"lxml"提供,两者都相似,但据报道ElementTree在python 2.7中存在错误,并且在python3中工作得很好。我看到您正在使用python 2.7,因此lxml将适合您。

试试这个

from lxml import etree
from io import StringIO
tree = etree.parse(StringIO(xml_file))
# incase you need to read an XML.
print(tree.getroot())

StringIO来自默认的python io包。当您将文件传递给它时,StringIO 是必需的(我的意思是将 XML 放入文件中并将该文件传递给解析器(。即使将 XML 作为大字符串传递,保持它也很困难,这是很好的。两者的所有写入操作都是相同的。

最新更新