2009-04-17 5 views
7

Ich fing an, die csv.reader in Python 2.6 zu verwenden, aber Sie können len darauf nicht verwenden oder es in Scheiben schneiden usw. Was ist der Grund dafür? Es fühlt sich sicherlich sehr einschränkend an.Warum ist csv.reader nicht pythonisch?

Oder ist das nur ein verlassenes Modul in späteren Versionen?

Antwort

14

Ich bin mir ziemlich sicher, dass Sie nicht len ​​oder Slice verwenden können, weil es ein Iterator ist. Versuchen Sie es stattdessen.

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

Danke, ich wusste nicht, dass es ein Iterator war. Ich dachte, es wäre eine multidimensionale Liste. –

+1

Sie können Linien = [Linie für Linie in r] durch Linien ersetzen = list (r) – saffsd

+1

Sie können 'itertools.islice' verwenden, wenn Sie einen Iterator in Scheiben schneiden müssen. –

Verwandte Themen