2009-04-17 2 views
7

Я начал использовать csv.reader в Python 2.6, но вы не можете использовать len на нем или разрезать его и т. Д. В чем причина этого? Это, безусловно, очень ограничивает.Почему csv.reader не является питоническим?

Или это просто заброшенный модуль в более поздних версиях?

ответ

14

Я уверен, что вы не можете использовать len или slice, потому что это итератор. Попробуйте это вместо этого.

import csv 
r = csv.reader(...) 
lines = [line for line in r] 
print len(lines) #number of lines 
for odd in lines[1::2]: print odd # print odd lines 
+0

Спасибо, я не знал, что это итератор. Я думал, что это многомерный список. –

+1

Вы можете заменить lines = [line for line in r] на lines = list (r) – saffsd

+1

Вы можете использовать 'itertools.islice', если вам нужно нарезать итератор. –

Смежные вопросы