2011-01-24 11 views
18

Jak pominąć linię rekordów w pliku CSV podczas korzystania z DictReadera?Python 3.2 pomiń linię w csv.DictReader

Kod:

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

Błąd:

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

nic wspólnego z tym problemu, ale powinno być otwarcie pliku tak: '(„open”, przełamane test2.csv =„”)'. .. zobacz dokumentację csv.reader –

+0

Przeczytałem dokument CSV.Reader. Ten atrybut wydaje się pomagać w zachowaniu wielowierszowych plików CSV. Ponieważ mój plik CSV jest wielowierszowy, czy byłoby rozsądnie dodać 'newline = ''' do mojego otwartego polecenia? – paragbaxi

Odpowiedz

6

Od Pythona 2.6 należy użyć następnego (foo) zamiast foo.next().

6

Uznano pomyłka w python2 mieć metodę nazywa next() zamiast __next__()

next(obj) teraz nazywa obj.__next__() jak str, len itd., Jak powinien.

Zwykle nie dzwonisz bezpośrednio pod numer obj.__next__(), ponieważ nie chcesz wywoływać bezpośrednio nazwy obj.__str__(), jeśli chcesz uzyskać reprezentację łańcuchową obiektu.

Handy znać jeśli znajdziesz się pisać Niezwykłe iteratory

+0

Dzięki za kontekst! – tarikki

Powiązane problemy