首页 > 解决方案 > 写入 XML 文件需要大数组作为内存中的字符串

问题描述

我想使用 Python 将大型数据集写入 XML 文件。我像这样使用lxml:

from lxml import etree as ET
import numpy

# a large array
a = numpy.random.rand(100)

xml_file = ET.Element("FooFile")
# yikes:
xml_file.text = "\n".join("{:e}".format(x) for x in a)

# write it to a file
tree = ET.ElementTree(xml_file)
tree.write("out.xml", pretty_print=True)

这里的一个问题是,首先需要将大数组转换为字符串,该字符串在内存中比原始数组大得多,然后才将其写入文件并丢弃。

我很想跳过中间步骤并自己直接写入文件。使用 lxml 或任何其他 XML 库可以做到这一点吗?不用说我不想编写自己的 XML 编写器。

而不是xml_file.txt = "123"我想象的东西

def foo_writer(f):
    f.write("123")

xml_file.writer = foo_writer

开启时称为tree.write

标签: pythonxmllxml

解决方案


推荐阅读