wie man jede Zeile in einer Datei python ausgibt

8
%Vor%

masters.txt hat eine Liste von Spitznamen, wie kann ich jede Zeile aus der Datei auf einmal ausdrucken ?. Der Code, den ich habe, druckt nur den ersten Spitznamen. Ihre Hilfe wird es zu schätzen wissen. Danke.

    
SourD 17.01.2011, 03:03
quelle

5 Antworten

20

Erstens, wie @ l33tnerd sagte, sollte f.close außerhalb der for-Schleife liegen.

Zweitens rufen Sie nur readline vor der Schleife auf. Das liest nur die erste Zeile. Der Trick besteht darin, dass Dateien in Python als Iteratoren fungieren, so dass Sie über die Datei iterieren können, ohne Methoden aufrufen zu müssen. Dadurch erhalten Sie eine Zeile pro Iteration:

%Vor%

Schließlich haben Sie sich auf die Variable lines innerhalb der Schleife bezogen; Ich nehme an, Sie wollten sich auf line beziehen.

Bearbeiten: Oh, und Sie müssen den Inhalt der if -Anweisung einrücken.

    
mgiuca 17.01.2011, 03:07
quelle
7

Sie möchten wahrscheinlich etwas wie:

%Vor%

Schließen Sie nicht jede Iteration der Schleife und Druckzeile statt Zeilen. Benutze auch readlines, um alle Zeilen zu erhalten.

BEARBEITEN hat meine andere Antwort entfernt - die andere in dieser Diskussion ist eine bessere Alternative als das, was ich hatte, also gibt es keinen Grund, sie zu kopieren.

Auch das \ n mit read () abgestreift. splitlines ()

    
NG. 17.01.2011 03:07
quelle
4

Du könntest das versuchen. Es liest nicht alles von f gleichzeitig in den Speicher (mit dem Iterator des Dateiobjekts) und schließt die Datei, wenn der Code den with-Block verlässt.

%Vor%

Wenn Sie eine ältere Version von Python (vor 2.6) verwenden, müssen Sie

haben %Vor%     
seggy 17.01.2011 03:32
quelle
2

Schleife durch die Datei.

%Vor%     
user2154354 04.04.2013 18:07
quelle
0

Hast du es versucht

? %Vor%

?

%Vor%

liest nur "eine Zeile", andererseits

%Vor%

liest ganze Zeilen und gibt Ihnen eine Liste aller Zeilen.

    
Serdar Dalgic 17.01.2011 03:09
quelle

Tags und Links