- くだすれPython(超初心者用) その25©2ch.net
876 :870[sage]:2015/04/06(月) 12:00:16.96 ID:WONhOiZc - >>874
ありがとうございます。 import csv import urllib.request url = 'http://www.tepco.co.jp/forecast/html/images/juyo-2013.csv' reader = csv.reader( urllib.request.urlopen(url).read().decode('cp932') ) for row in reader: print(row) これで一応エラーはでないで読み込むことはできるようになったのですが なぜか文字が一文字ずつに分割 他のCSVで試してみると[', ']や改行?の[]が入っているようです。 上記の方法でやればこのようなことにはならないのでしょうか?
|
- くだすれPython(超初心者用) その25©2ch.net
879 :870[sage]:2015/04/06(月) 13:55:04.81 ID:WONhOiZc - >>877,878
勉強不足ですみません。 python3なためreauests.getが見つかりませんでした。 http://diveintopython3-ja.rdy.jp/files.html >io.StringIOを使うと、文字列をテキストファイルのように扱うことができる。 import csv import io import urllib.request url = 'http://www.tepco.co.jp/forecast/html/images/juyo-2013.csv' reader = csv.reader(io.StringIO(urllib.request.urlopen(url).read().decode('sjis'))) for row in reader: print(row) で目的通りに動くようになりました。 responseをcodecs.StreamReaderでラップについては勉強します。
|
- くだすれPython(超初心者用) その25©2ch.net
880 :870[sage]:2015/04/06(月) 14:04:20.87 ID:WONhOiZc - >>877
CSVでもダブルクォーテーションで囲む文字列文字は文字列で処理されています。 こちらの資料によると http://itdoc.hitachi.co.jp/manuals/3020/30203698A0/swrj0068.htm ダブルクォーテーションで囲まない文字列 区切り文字の間のすべての文字が値とみなされます。 コンマ(,)を文字列の値として記述することはできません。 区切り文字であるコンマ以外の文字はすべて値となります。したがって,アポストロフィ(')や空白文字も値とみなされます。 CSVの仕様でダブルクォーテーションで囲まないため1文字ずつの処理になっているのだと思います。
|
- くだすれPython(超初心者用) その25©2ch.net
882 :870[sage]:2015/04/06(月) 15:05:00.21 ID:WONhOiZc - >>881
そうなんですか勉強不足ですみません。 プログラムありがとうございます。 勉強させていただきます。
|