Ich schreibe ein Skript, um X12 EDI-Dateien zu verarbeiten, die ich Zeile für Zeile durchlaufen möchte. Die Dateien bestehen aus einer Folge unterschiedlicher Datensätze, die jeweils durch ein Sonderzeichen (z. B. ~
, siehe unten) abgeschlossen sind. Die Dateien können groß sein (& gt; 100 MB), so dass ich das Ganze nicht reinlesen und aufteilen möchte. Die Datensätze sind nicht durch Zeilenumbrüche getrennt. Lesen in der ersten Zeile würde wahrscheinlich die ganze Datei lesen. Die Dateien sind all-ASCII.
Python bietet eindeutig die Möglichkeit, eine Datei bis zu einem bestimmten Zeichen zu lesen, vorausgesetzt, dass es sich bei diesem Zeichen um einen Zeilenumbruch handelt. Ich würde das Gleiche mit einem beliebigen Charakter machen. Ich gehe davon aus, dass das Lesen per Linie über Pufferung erfolgt. Ich könnte meinen eigenen gepufferten Leser implementieren, aber ich würde lieber den zusätzlichen Code und den Overhead vermeiden, wenn es eine bessere Lösung gibt.
Hinweis: Ich habe ein paar ähnliche Fragen gesehen, aber alle schienen zu dem Schluss zu kommen, dass man die Datei an der Zeile einlesen sollte, vorausgesetzt, dass die Zeilen eine vernünftige Größe hätten. In diesem Fall ist die gesamte Datei wahrscheinlich eine Zeile.
Edit: Das Segmentabschlusszeichen ist das 106ste Byte der Datei. Es ist nicht bekannt, bevor das Skript aufgerufen wird.
Vielleicht brauchen Sie so etwas
Warnung: Code nicht optimiert
%Vor%Tags und Links python