Django:No module named 'cStringIO'

Django:No module named 'cStringIO'

StringIOを使おうとしたところ「そんなモジュールはねぇ」と怒られてしまいました。

import cStringIO

# ▼結果▼
No module named 'cStringIO'

ググって【StringIO】というモジュール名で実装している事例もチラホラ。
で変更してみましたが結果は変わらずでした。

import StringIO

# ▼結果▼
No module named 'StringIO'

原因:python3にはモジュールが存在しない

え?そんな理由ですか。
Python2では存在していたcStringIO ですが、Python3ではioの中に格納された様子。
という事で、こんな形で実装すればOKでした。

# StringIOモジュールをセット
form io import StringIO

#cStringIOモジュールをセット
import io as cStringIO

参考サイト_1  参考サイト_2

StringIOモジュールで出来る事

Excelのような入力画面を作る事ができます。参考サイト_3

まぁ別にExcelチックにしなくてもよいのですが、データの読込/書き込み/出力といった動作を簡単に実装してくれるのでとても便利です。

▼某サイトの参考スクリプト

import io

with io.StringIO() as s:
    s.write('1行目')
    print('2行目', file=s, end='')
    contents = s.getvalue()
    print(contents)

私は案件探しのためのネタを兼ねて作成した【業務経歴書出力システム】を組んだ際に利用しました。

まとめ

まさかインポートの仕方が変わっているとは思いもしませんでした。
沢山の情報があるとありがたい反面、こういったバージョンによる違いには気を付けなくてはいけませんね。

\ 最新情報をチェック /

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。