python - 写入 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
。