Django:No module named ‘cStringIO’

Django:No module named ‘cStringIO’
StringIOを使おうとしたところ「そんなモジュールはねぇ」と怒られてしまいました。
1 2 3 4 |
import cStringIO # ▼結果▼ No module named 'cStringIO' |
ググって【StringIO】というモジュール名で実装している事例もチラホラ。
で変更してみましたが結果は変わらずでした。
1 2 3 4 |
import StringIO # ▼結果▼ No module named 'StringIO' |
原因:python3にはモジュールが存在しない
え?そんな理由ですか。
Python2では存在していたcStringIO ですが、Python3ではioの中に格納された様子。
という事で、こんな形で実装すればOKでした。
1 2 3 4 5 |
# StringIOモジュールをセット form io import StringIO #cStringIOモジュールをセット import io as cStringIO |
StringIOモジュールで出来る事
Excelのような入力画面を作る事ができます。参考サイト_3
まぁ別にExcelチックにしなくてもよいのですが、データの読込/書き込み/出力といった動作を簡単に実装してくれるのでとても便利です。
▼某サイトの参考スクリプト
1 2 3 4 5 6 7 |
import io with io.StringIO() as s: s.write('1行目') print('2行目', file=s, end='') contents = s.getvalue() print(contents) |
私は案件探しのためのネタを兼ねて作成した【業務経歴書出力システム】を組んだ際に利用しました。
まとめ
まさかインポートの仕方が変わっているとは思いもしませんでした。
沢山の情報があるとありがたい反面、こういったバージョンによる違いには気を付けなくてはいけませんね。
-
前の記事
初級者がプログラミングのお仕事を受注するにあたっての注意点 2021.04.14
-
次の記事
Django:MySQLのdatetime型を日付一致で取り出す方法(QuerySetで) 2021.04.15
コメントを残す