В python 2.7.3, как я могу запустить цикл из второй строки? напримерpython csv reader, цикл из второй строки
first_row = cvsreader.next();
for row in ???: #expect to begin the loop from second row
blah...blah...
В python 2.7.3, как я могу запустить цикл из второй строки? напримерpython csv reader, цикл из второй строки
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
# ...
Тестирование это действительно работает:
>>> 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
выглядит наиболее читаемым IMO
Другой альтернативой является
from itertools import islice
for row in islice(reader, 1, None)
Но разве вы не должны использовать заголовок? Рассмотрим csv.DictReader
, который по умолчанию устанавливает имена полей в первую строку.
Благодарим за упоминание об альтернативе! Я не использую заголовок, потому что конкретный файл csv, с которым я имею дело, имеет пустой заголовок: P – GuLearn
Предполагая, что 1-й строки содержит имена полей:
import csv
for field in csv.DictReader(open("./lists/SP500.csv", 'rb')):
symbol = (field['ticker']).rstrip()
вы имели ответ прямо там :-) – bernie
я должен испытать самый очевидный путь, прежде чем спросить, что это глупый вопрос :( – GuLearn
не вопрос не является – bernie