読者です 読者をやめる 読者になる 読者になる

夢に向かって、好奇心を持ち、疑問を持ち続ける。それが努力。

博士課程に在学するロボット好き学生のブログです。

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の構造体を調べてもなかなか出てこないので、とりあえずメモ程度に書いてみました。

もし間違ってたりしたら教えてください。

 

眠くなって寝ぼけながら書いてるから明日読んでびっくりするかも...

 

おやすみなさい☆