Pythonでcsvファイルを読み込んだときの注意点
久しぶりにPythonでひっかかったので、メモしておきます。
課題はcsvファイルを読み込んだ構造体についてです。
下記はその問題になったプログラムの一部です。
--------------------------------------------------------------
import csv
csv_input = csv.reader(open(csv_file)
# csv_inputに対するfor文1
for row in csv_input :
for data in row :
print data
# csv_inputに対するfor文2
for row in csv_input :
for data in row :
print data
--------------------------------------------------------------
これを実行するとどうなるでしょう。
結果は、# csv_inputに対するfor文1だけ正確に処理され、
# csv_inputに対するfor文2は実行されない。
問題は、恐らく、csv_inputの一回目のfor文で、csv_input内のポインタが内部で最後のセルに保持されており、いくらfor文を回しても、ポインタを最初に戻さない限り、このfor文が実行されないのと同等の結果になってしまうということではないかと思う。
csvの構造体を調べてもなかなか出てこないので、とりあえずメモ程度に書いてみました。
もし間違ってたりしたら教えてください。
眠くなって寝ぼけながら書いてるから明日読んでびっくりするかも...
おやすみなさい☆