Python」タグアーカイブ

xlwt ライブラリで大きな Excel ファイルを作成する

おおまえです。今日は雪がよく降りますね。また大雪らしいです。前の大雪では傘を持ちながらこけて傘の骨を少し曲げてしまいました。今回は気をつけたいところです。

さて Python で Excel ファイルを作成する際に使うライブラリとして xlwt (*.xls) と openpyxl (*.xlsx) が知られていると思います。

ここで xlwt ライブラリ使う際には注意しなければいけないことが1つあります。それは大量の行/セルを設定する場合は、適当なタイミング(1000行ごとに一回とか)で Worksheet.flush_row_data() を呼んでメモリ上のデータをファイルに書き出すようにすることです。

設定されるデータ量が決まっている場合はよいですが、予測できない場合はこれをやっておかないと大量のメモリを消費させられてひどい目に遭います。(というか遭いました)

このメソッドは http://www.python-excel.org/ から辿れる xlwt document のページには見当たりませんが、The Tutorial python-excel.pdf の Page.21 には以下にような記載にて注意がなされています。

If a large number of rows have been written to a Worksheet and memory usage is becoming a problem, the flush_row_data method may be called on the Worksheet. Once called, any rows flushed cannot be accessed or modified.

It is recommended that flush_row_datais called for every 1000 or so rows of a normal size that are written to an xlwt.Workbook. If the rows are huge, that number should be reduced.

そういうことで xlwt を使っている ExcelDownloadPlugin でその状況になってしまいましたので http://trac-hacks.org/changeset/13423 にて修正しています。同じ問題に遭遇したひとはプラグインを更新してみてください。

tracpath は PyCon APAC 2013 のスポンサーとして協賛

20130802_banner

tracpath は PyCon APAC 2013 のスポンサーとして協賛

こんにちは、tracpath は PyCon APAC 2013 のスポンサーになります。

PyCon とは

PyCon は、Pythonユーザが集まり、PythonやPythonを使ったソフトウェアについて情報交換し、
交流するためのカンファレンスです。 
PyCon APACの開催を通してPythonの使い手が一同に集まり、他の分野などの情報や知識や知人
を増やす場所とすることが目標です。

PyCon APAC 2013 イベント内容

項目 内容
チュートリアル 2013-09-13(金)
カンファレンス 2013-09-14(土)-15(日)
開発スプリント 2013-09-16(月・祝)
テーマ The Year of Python
会場 工学院大学 新宿キャンパス
参加者数(予定) 500
トラック数(予定) 日本語: 2、英語: 2
参加費 検討中
運営 PyCon JP 実行委員会 PyCon APAC 2013 運営チーム
連絡先 2013@pycon.jp

tracpath

tracpath はtracの開発に携わっているメンバーとともに開発されたエンタープライズ向けの課題管理・バージョン管理サービスです。開発言語として Python をエンタープライズで利用しており、Python の発展に寄与したいと考えています。

日本国内で行われる大規模なイベント「PyCon APAC 2013」にぜひご参加下さい。

 

PyCon APAC 2013