2009-04-17 31 views
7

Python 2.6'da csv.reader'u kullanmaya başladım ama üzerinde len kullanamazsınız ya da dilimleyemezsiniz. Bunun sebebi nedir? Kesinlikle çok sınırlayıcı hissediyor.Neden csv.reader pythonic değil?

Veya daha sonraki sürümlerde bu sadece terk edilmiş bir modül mü?

cevap

14

Eminim len veya dilim kullanamazsınız, çünkü bu bir yineleyici. Bunun yerine deneyin.

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

Teşekkürler, bir yineleyici olduğunu bilmiyordum. Çok boyutlu bir liste olduğunu düşündüm. –

+1

Satırları değiştirebilirsiniz = [satırdaki satır r] satırları ile = liste (r) – saffsd

+1

Bir yineleyiciyi dilimlemeniz gerekiyorsa, 'itertools.islice' kullanabilirsiniz. –