W pythonie 2.7.3, jak mogę uruchomić pętlę z drugiego rzędu? na przykładpython csv reader, pętla z drugiego rzędu
first_row = cvsreader.next();
for row in ???: #expect to begin the loop from second row
blah...blah...
W pythonie 2.7.3, jak mogę uruchomić pętlę z drugiego rzędu? na przykładpython csv reader, pętla z drugiego rzędu
first_row = cvsreader.next();
for row in ???: #expect to begin the loop from second row
blah...blah...
first_row = next(csvreader) # Compatible with Python 3.x (also 2.7)
for row in csvreader: # begins with second row
# ...
Testowanie to naprawdę działa:
>>> import csv
>>> csvreader = csv.reader(['first,second', '2,a', '3,b'])
>>> header = next(csvreader)
>>> for line in csvreader:
print line
['2', 'a']
['3', 'b']
next(reader, None) # Don't raise exception if no line exists
wygląda najbardziej czytelny IMO
Drugą alternatywą jest
from itertools import islice
for row in islice(reader, 1, None)
Nie powinieneś jednak używać nagłówka? Rozważmy csv.DictReader
, który domyślnie ustawia nazwy pól do pierwszego wiersza.
Dziękuję za wzmiankę o alternatywie! Nie używam nagłówka, ponieważ konkretny plik csv, z którym mam do czynienia, ma pusty nagłówek: P – GuLearn
Zakładając 1st wiersz zawiera nazwy pól:
import csv
for field in csv.DictReader(open("./lists/SP500.csv", 'rb')):
symbol = (field['ticker']).rstrip()
miałeś odpowiedź właśnie tam :-) – bernie
należy przetestować najbardziej oczywistym sposobem zanim zapytasz, to jest głupie pytanie :( – GuLearn
mowy jest głupi, nie przejmuj się tym – bernie