2016-05-25 13 views
0

Ich schrieb ein sehr einfaches Programm, das eine CSV lesen und alle Zeilen zweimal drucken sollte. Wenn ich das Programm jedoch ausführte, druckte es beim ersten Mal alle Zeilen und beim zweiten Mal nichts.Alle CSV-Zeilen in Python drucken funktioniert nur einmal

Code:

import csv 

csvfile = csv.reader(open(<path>, 'rb')) 

print 'Attempt 1' 
for row in csvfile: 
    print row 

print 'Attempt 2' 
for row in csvfile: 
    print row 

Ausgang:

Attempt 1 
['a', 'b', 'c'] 
['d', 'e', 'f'] 
Attempt 2 

Warum ist der Code nicht druckt den Inhalt wieder zum zweiten Mal?

Antwort

3

Sie müssen die geöffnete Datei rewind:

import csv 

csvfile = csv.reader(open(<path>, 'rb')) 

print 'Attempt 1' 
for row in csvfile: 
    print row 

csvfile.seek(0, 0) 

print 'Attempt 2' 
for row in csvfile: 
    print row 

Auf diese Weise sollte es funktionieren.

+0

Aber warum? 7654321 – Jasper

0

Korrigieren Sie mich, wenn ich falsch liege, aber ich bin ziemlich sicher, dass die csvfile Variable, die Sie erstellen, ein Generatorobjekt ist.

Generatoren werden nicht im Speicher gespeichert, aber kann nur einmal durchlaufen werden!

hoffe, das hilft, Luke

Verwandte Themen