1

Genshi テンプレートを使用して XML ファイルを生成しようとしています。ファイルは約 100MB で、使用可能なメモリが小さいため、データをロードせずに Python ジェネレータを使用して、コードのメモリを最適化しようとしました。

ただし、

tpl = MarkupTemplate("<template_xml/>")
stream = tpl.generate(data=lots_of_data_generator)
with open('file.xml', 'w') as fp:
    for chunk in stream.serialize():
        fp.write(chunk)

プロファイラーによると、これは 2 行目で発生します。Genshi docは、ストリームで serialize() を呼び出すと、ロードされた文字列ではなくジェネレーターが返されると述べています。これは間違った考え方ですか?テンプレートで大量のメモリを使用しない方法はありますか?

4

0 に答える 0