2017-01-27 22 views
0

私はファイルを解析し、openpyxlを使って処理したデータをExcelに保存しようとしています。解析するファイルが小さい場合、正常に保存することができます。しかし、解析するファイルが大きくなると、次のエラーが発生します。openpyxlを使ってExcelを保存する

トレースバック(最新のコール最後): ファイル "C:\ Users \ 522094 \ Desktop \ vdbench \ vdbench_new - Copy.py"、195行目、 (ファイル名=レポートパス) ファイル "C:¥Users¥522094¥Desktop¥vdbench¥vdbench_new - Copy.py" save_workbook(self、filename) ファイル "C:\ Python27 \ lib \ site-packages \ openpyxl \ writer \ excel.py"を保存している場合は、保存すると、Python27¥lib¥site-packages¥openpyxl¥workbook¥workbook.py " "、行268、save_workbook writer.save(ファイル名) ファイル" C:\ Python27 \ lib \ site-packa ges \ openpyxl \ writer \ excel.py "、行250、保存中 self.write_data() ファイル" C:\ Python27 \ lib \ site-packages \ openpyxl \ writer \ excel.py "、行81、write_data self._write_worksheets() _write_worksheetsの "C:¥Python27¥lib¥site-packages¥openpyxl¥writer¥excel.py"ファイル19935行目 xml = ws._write() ファイル "C:\ Python27 \ lib \ site-packages \ openpyxl \ worksheet \ worksheet.py "、行866、_write return write_worksheet(self) ファイル" C:\ Python27 \ lib \ site-packages \ openpyxl \ writer \ worksheet.py "、行177、write_worksheet内 ファイル: "C:\ Python27 \ lib \ contextlib.py"、行24、出口でxf.write(tables.to_tree()) self.gen.next() ファイル "C:¥Python27¥lib¥site-packages¥et_xmlfile¥xmlfile.py"、行50、要素内 self._write_element(el) ファイル "C:\ Python27 \ lib \ ttring(element) ファイル "C:\ Python27 \ lib \ xml \ etree \ ElementTree.py"、行1126、tostring内 ElementTree (ファイル、エンコーディング、メソッド=メソッド) ファイル "C:\ Python27 \ lib \ xml \ etree \ ElementTree.py"、行820、書き込み中 serialize(write、self._root、encoding、qnames 、名前空間) _serialize_xml内の "C:\ Python27 \ lib \ xml \ etree \ ElementTree.py"ファイル939行 _serialize_xml(書き込み、e、エンコーディング、qnames、なし) Fi _serialize_xmlの "C:¥Python27¥lib¥xml¥etree¥ElementTree.py" 939行目 _serialize_xml(書き込み、e、エンコーディング、qnames、なし) ファイル "C:\ Python27 \ lib \ xml \ etree \_serialize_xmlのファイル "C:\ Python27 \ lib \ xml \ etree \ ElementTree.py"(940行目) 書込み(e、エンコード、qnames、なし) "") MemoryError

解決方法をご提案ください。

答えて

0

使用しているワークブックの種類は指定していませんが、公式のドキュメントに合致している方が速いのは、ワークブックの書き込み専用モードを使用しているため、書き込み専用モードでオンにすることができます

https://openpyxl.readthedocs.io/en/default/optimized.html#write-only-mode

:インスタンス化でフラグ:あなたはより多くの情報を

>>> from openpyxl import Workbook 
>>> wb = Workbook(write_only=True) 
>>> ws = wb.create_sheet() 
>>> 
>>> # now we'll fill it with 100 rows x 200 columns 
>>> 
>>> for irow in range(100): 
...  ws.append(['%d' % i for i in range(200)]) 
>>> # save the file 
>>> wb.save('new_big_file.xlsx') 

公式ドキュメントが必要な場合

関連する問題