2016-08-03 32 views
1

Aus irgendeinem Grund scheint mein Code nicht zu q hinzuzufügen, es gibt 0 für q aus, obwohl es 11 Zeilen in der CSV-Datei gibt, alles was ich überprüfen möchte, ob die CSV-Datei leer ist, der Code nicht arbeite in meinem Skript, aber in der Python-Konsole funktioniert es gut.Welchen Fehler mache ich in meinem Code?

with open('File.csv', 'r') as FILE: 
    q=0;LS = reader(FILE, delimiter=',') 
    for i in LS: 
     q+=1 
    print q 

Kann mir jemand sagen, welchen Fehler ich mache? Ich bin ziemlich verwirrt.

+0

Was meinen Sie mit "es druckt 0 für q" aus? Was sind die Inhalte Ihrer CSV-Datei? –

+3

Es beantwortet nicht die Frage, sondern die Verwendung; In Python ist eine schlechte Übung, verwenden Sie eine andere Zeile. –

+1

Wenn Sie 'i' innerhalb der 'for'-Schleife drucken, können Sie Ihren Code schnell debuggen. Ich vermute, 'LS' ist leer und daher' q' bleibt 0. – Ian

Antwort

1

Die i iteriert durch die Zeilen in LS, also wenn Sie eine Datei mit 1 Zeile haben, wird es 1, wenn Sie eine leere Datei haben, wird es 0, etc ... Ich vermute, dass Ihre Datei leer ist, oder die Eröffnung war nicht erfolgreich.

+0

nein die Datei ist nicht leer – user5117999

+0

fügen Sie einige Debug-Anweisungen in der Schleife, wie zum Beispiel 'print i',' print q' und sehen, was passiert. – fritzone

+0

Ich habe es ausgedruckt – user5117999

2

Sind Sie sicher, dass der Dateiname korrekt ist und sich im selben Ordner befindet? Ich habe dein Skript mit einer csv-Datei ausgeführt, die ich schnell gemacht habe (Inhalt: 1,2) und es gab 1 wie erwartet aus. Stellen Sie außerdem sicher, dass Ihr Beispielcode selbst ausgeführt werden kann, also in Zukunft .

+0

ja es hat diese Zeile enthalten, gibt es eine andere Möglichkeit, um zu überprüfen, ob eine CSV-Datei leer ist oder nicht? – user5117999

+0

Nun können Sie einfach die Datei als reguläre Datei lesen, das heißt: fh = open (‚file.csv‘, ‚r‘) für Zeile in fh: Druckzeile Oder lesen Sie einfach die Datei mit zum Beispiel Katze. – Zafi