Wie überprüfe ich in Python auf EOF?

8

Wie überprüfe ich in Python auf EOF? Ich habe einen Fehler in meinem Code gefunden, bei dem der letzte Textblock nach dem Trennzeichen nicht zur Rückkehrliste hinzugefügt wurde. Oder gibt es vielleicht eine bessere Möglichkeit, diese Funktion auszudrücken?

Hier ist mein Code:

%Vor%     
ajushi 03.01.2010, 03:43
quelle

6 Antworten

3

Sie finden es unter iertools.groupby einfacher, dies zu lösen.

%Vor%

Eine andere Alternative besteht darin, einen regulären Ausdruck zu verwenden, um die Trennzeichen zu finden:

%Vor%     
Mark Byers 03.01.2010, 03:56
quelle
1

Die Dateiende-Bedingung gilt, sobald die for -Anweisung beendet wird - das scheint der einfachste Weg zu sein, diesen Code geringfügig zu reparieren (Sie können text_block.getvalue() am Ende extrahieren, wenn Sie überprüfen wollen, dass es nicht leer ist bevor Sie es anfügen).

    
Alex Martelli 03.01.2010 03:49
quelle
1
%Vor%     
dde 29.01.2011 06:33
quelle
0

Warum brauchst du StringIO hier?

%Vor%

BEARBEITEN: Die Funktion wurde korrigiert, andere Vorschläge könnten besser sein, wollten nur eine Funktion ähnlich der ursprünglichen schreiben.

EDIT: Angenommen, die Datei beginnt mit "- -", durch Hinzufügen einer leeren Zeichenfolge zur Liste können Sie den IndexError "reparieren" oder Sie können diesen verwenden:

%Vor%

Aber beide Versionen sehen für mich etwas hässlich aus, die reg-ex Version ist viel sauberer.

    
Maiku Mori 03.01.2010 03:55
quelle
0

Dies ist das Standardproblem bei der Ausgabe von Puffern.

Sie erkennen EOF nicht - das ist unnötig. Sie schreiben den letzten Puffer.

%Vor%     
S.Lott 03.01.2010 12:44
quelle
-2

Dies ist ein schneller Weg, um zu sehen, ob Sie eine leere Datei haben:

%Vor%     
AndroidDebaser 10.04.2012 17:28
quelle

Tags und Links