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
StringIOモジュールで出来る事
Excelのような入力画面を作る事ができます。参考サイト_3
まぁ別にExcelチックにしなくてもよいのですが、データの読込/書き込み/出力といった動作を簡単に実装してくれるのでとても便利です。
▼某サイトの参考スクリプト
import io
with io.StringIO() as s:
s.write('1行目')
print('2行目', file=s, end='')
contents = s.getvalue()
print(contents)
私は案件探しのためのネタを兼ねて作成した【業務経歴書出力システム】を組んだ際に利用しました。
まとめ
まさかインポートの仕方が変わっているとは思いもしませんでした。
沢山の情報があるとありがたい反面、こういったバージョンによる違いには気を付けなくてはいけませんね。


