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%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% 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).
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.
Dies ist ein schneller Weg, um zu sehen, ob Sie eine leere Datei haben:
%Vor%