2016-05-08 9 views
0

csv.readerを使用すると、誰かが私の動作を理解するのを助けることができますか?同じ関数ハンドル内のcsv.readerの2番目のインスタンスが明らかに空になっているようです。誰かが私の操作/理由を説明してくれますか?ファイルハンドルとPython用のcsvリーダーを理解

def getAllCategories(self, file): 
    csvread = csv.reader(file, delimiter=',') 
    for row in csvread: 
     print row[3] 

    reader = csv.reader(file, delimiter=',') 
    for row1 in reader: 
     print " -------------- " 
+1

あなたは二度同じファイル上で読んでいる理由を説明できますか?あなたがここで達成しようとしていることをするためのより良い方法があるかもしれません。 –

+0

@BurhanKhalid - 私は良い方法があるだろうが、残念ながら私はできない部分に同意する。このリンクから私はcsvファイルを取得しており、すべてのカテゴリを取得しようとしています。ファミリーベース/雇用ベースをベースにしていますが、それぞれのカテゴリをキーとしてすべてのサブタイプをその値としてキーしたいと思っています。別の質問を投稿する必要がありますか? https://www.uscis.gov/tools/reports-studies/immigration-forms-data/data-set-all-uscis-application-and-petition-form-types – oneday

+0

新しい質問を投稿する必要があります。この問題を解決するための非常に簡単な方法です。 –

答えて

1

fileの内容は、すでに最初のリーダーで消費されています。 csvreadがすべての行を読み込むと、ファイルポインタがファイルの終わりに移動するので、2番目のリーダーのために読み込むことは何も残っていません。

あなたは、第二のリーダーを作成する前に戻って、ファイルの先頭にファイルポインタを移動するためにseekを使用することができます。

file.seek(0) 
関連する問題