Python - Wie lese ich Dateien mit NULL-getrennten Zeilen?

8

Normalerweise verwende ich den folgenden Python-Code, um Zeilen aus einer Datei zu lesen:

%Vor%

Aber wie wäre es, wenn die Datei durch "\ 0" (nicht "\ n") getrennt ist? Gibt es ein Python-Modul, das damit umgehen könnte?

Danke für irgendeinen Rat.

    
user1129812 11.02.2012, 02:13
quelle

2 Antworten

13

Wenn Ihre Datei klein genug ist, dass Sie alles im Speicher lesen können, können Sie split verwenden:

%Vor%

Andernfalls sollten Sie dieses Rezept aus der Diskussion über diese Funktion anfordern ausprobieren:

%Vor%

Ich habe auch bemerkt, dass Ihre Datei die Erweiterung "csv" hat. Es gibt ein in Python integriertes CSV-Modul (import csv). Es gibt ein Attribut mit dem Namen Dialect.lineterminator , das jedoch derzeit nicht im Reader implementiert ist:

  

Dialekt.lineterminator

     

Die Zeichenfolge, mit der die vom Writer erzeugten Zeilen terminiert werden. Die Standardeinstellung lautet '\ r \ n'.

     

Hinweis: Der Leser ist hart codiert, entweder "\ r" oder "\ n" als Zeilenende zu erkennen, und ignoriert den Lineterminator. Dieses Verhalten kann sich in Zukunft ändern.

    
Mark Byers 11.02.2012, 02:17
quelle
0

Ich habe den Vorschlag von Mark Byers dahingehend geändert, dass wir eine READLINE-Datei mit NULL-getrennten Zeilen in Python lesen können. Dieser Ansatz liest eine potenziell große Datei Zeile für Zeile und sollte effizienter sein. Hier ist der Python-Code (mit Kommentaren):

%Vor%

Ich hoffe, es hilft.

    
user1129812 12.02.2012 05:21
quelle

Tags und Links