我正在编写一个脚本来执行创建数据并将数据写入XML文件的操作。错误是无模块无模块名称
我指的是这个stackoverflow链接Python 2.5.4 - ImportError: No module named etree.ElementTree。我指的是本教程https://stackabuse.com/reading-and-writing-xml-files-in-python/。我仍然不知道该怎么解决。我试图替换
“从elementtree导入ElementTree”
到
“从xml.etree导入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
答案 0 :(得分:0)
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作为大字符串传递,以使其更加艰难。 两者的所有写入操作都将相同。
答案 1 :(得分:0)
import xml.etree.ElementTree as xml
如果您使用自己的xml模块,请确保在同一文件夹中有__init__.py
文件,请避免路径冲突。
然后它将起作用。