2011-01-24 42 views
18

DictReaderを使用しているときに、CSVのレコードの行をスキップするにはどうすればよいですか?Python 3.2 csv.DictReaderの行をスキップ

コード:

import csv 
reader = csv.DictReader(open('test2.csv')) 
# Skip first line 
reader.next() 
for row in reader: 
    print(row) 

エラー:

Traceback (most recent call last): 
    File "learn.py", line 3, in <module> 
    reader.next() 
AttributeError: 'DictReader' object has no attribute 'next' 
+0

この問題とは何の関係も書いていますが、このようなあなたのファイルを開くべきである見つけるかどうかを知るためにハンディ:(「「test2.csv」は改行=」) 'オープン'。 .. csv.readerドキュメントを参照してください –

+0

私はCSV.Readerドキュメントを読んでいます。この属性は、複数行のCSVを保持するのに役立ちます。私のCSVファイルは複数行であるので、開いているコマンドに 'newline = '''を追加するのは賢明でしょうか? – paragbaxi

答えて

20

があなたの代わりにnext(reader)を使用しています。

出典:csv.DictReader documentation

+2

これは、Python 2ではなくPython 3だからです。 –

+0

これはPython 2とPython 3で動作します – user1251007

6

のPython 2.6以来、あなたが代わりにfoo.nextの次の(FOO)を使用する必要があります()。

6

それは、それが必要として代わりに__next__()

next(obj)next()と呼ばれる方法が今ちょうどstrlenなどのようなobj.__next__()を呼び出す持ってpython2ミスと考えられていました。

オブジェクトの文字列表現が必要な場合は、obj.__str__()を直接呼び出さないのと同じように、通常obj.__next__()を直接呼び出すことはありません。

あなた自身が異例のイテレータ

+0

ありがとうございました! – tarikki

関連する問題