Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Python生成xml文件_Python_Xml_Python 2.7_Xml Parsing_Ipython - Fatal编程技术网

用Python生成xml文件

用Python生成xml文件,python,xml,python-2.7,xml-parsing,ipython,Python,Xml,Python 2.7,Xml Parsing,Ipython,下图是性能测试的结果。我的问题之一是:如何将结果传输到XML文件中 我一直在尝试文件编写方法。但是如果我需要解析的数据是海量的呢?有没有一种方法或插件可以用更智能的方式完成 到目前为止,我的代码是: def generate_xml(jank_perc): with open('jankyresult.xml','a') as f: f.write('<?xml version="1.0" ?>\n') f.write("<root>\n")

下图是性能测试的结果。我的问题之一是:如何将结果传输到XML文件中

我一直在尝试文件编写方法。但是如果我需要解析的数据是海量的呢?有没有一种方法或插件可以用更智能的方式完成

到目前为止,我的代码是:

def generate_xml(jank_perc):

with open('jankyresult.xml','a') as f:
    f.write('<?xml version="1.0" ?>\n')
    f.write("<root>\n")
    f.write("   <doc>\n")
    f.write("      <Jankyframes>" + jank_perc + '%' + "</Jankyframes>\n")
    f.write("   </doc>\n")
    f.write("</root>\n")
def生成_xml(jank_perc):
以open('jankyrult.xml','a')作为f:
f、 写入('\n')
f、 写入(“\n”)
f、 写入(“\n”)
f、 写入(“+jank_perc+'%'+“\n”)
f、 写入(“\n”)
f、 写入(“\n”)
我不想手动创建。我希望有一个更聪明的方法。谢谢你的回答

看看图书馆:

以Python方式生成HTML或XML。纯python替代web模板引擎。可以用默认值和错误消息填充HTML表单

下面是一个基于您的代码示例的示例:

doc, tag, text = Doc().tagtext()

doc.asis('<?xml version="1.0"?>')

with tag('root'):
    with tag('doc'):
        with tag('Jankyframes'):
            text(jank_perc + '%')

with open('jankyresult.xml','a') as f:
    f.write(doc.getvalue())
doc,tag,text=doc().tagtext()
asis文件(“”)
带标记('root'):
带标记('doc'):
带有标记('Jankyframes'):
文本(jank_perc+'%')
以open('jankyrult.xml','a')作为f:
f、 写入(doc.getvalue())
根据您获取输入数据的方式(例如
列表
dict
),您可以对其进行迭代并将结果写入XML,同时保持代码可读性。

使用此选项。例如,

from xml.etree import ElementTree, cElementTree
from xml.dom import minidom

root = ElementTree.Element('root')
child1 = ElementTree.SubElement(root, 'doc')
child1_1 = ElementTree.SubElement(child1, 'Jankyframes')
child1_1.text = jank_perc

print ElementTree.tostring(root)
tree = cElementTree.ElementTree(root) # wrap it in an ElementTree instance, and save as XML

t = minidom.parseString(ElementTree.tostring(root)).toprettyxml() # Since ElementTree write() has no pretty printing support, used minidom to beautify the xml.
tree1 = ElementTree.ElementTree(ElementTree.fromstring(t))

tree1.write("filename.xml",encoding='utf-8', xml_declaration=True)

你可以使用jinja2“tree=cElementTree.ElementTree(root)”你能给我解释一下这个代码吗?谢谢,我真的不知道它为什么会在这里。
cElementTree模块是ElementTreeAPI的C实现,针对快速解析和低内存使用进行了优化。在典型的文档中,cElementTree比Python版本的ElementTree快15-20倍,并且使用的内存减少了2-5倍
,根据effbot.org/zone/cElementTree.htm在代码前面添加了注释。感谢您回答我的问题。我注意到ElementTree的用法。