Ich schreibe ein Skript, das Fehler von einem anderen Programm protokolliert und das Programm dort neu startet, wo es einen Fehler festgestellt hat. Aus welchen Gründen auch immer, die Entwickler dieses Programms hielten es nicht für notwendig, diese Funktionalität standardmäßig in ihr Programm aufzunehmen.Mischen von Dateien und Schleifen
Wie auch immer, das Programm nimmt eine Eingabedatei, analysiert sie und erstellt eine Ausgabedatei. Die Eingabedatei ist in einem bestimmten Format:
UI - 26474845
TI - the title (can be any number of lines)
AB - the abstract (can also be any number of lines)
Wenn das Programm einen Fehler wirft, es gibt Ihnen die Referenzinformationen benötigen Sie den Fehler verfolgen - nämlich die UI, welcher Abschnitt (Titel oder Zusammenfassung), und die Zeilennummer relativ zum Beginn des Titels oder der Zusammenfassung. Ich möchte die fehlerhaften Sätze aus der Eingabedatei mit einer Funktion protokollieren, die die Referenznummer und die Datei nimmt, den Satz findet und protokolliert. Der beste Weg, um darüber nachzudenken, besteht darin, die Datei eine bestimmte Anzahl von Malen vorwärts zu bewegen (n-mal, wobei n die Zeilennummer relativ zum Anfang des Sections ist). Die Art und Weise, den Sinn schien zu machen, dies zu tun ist:
i = 1
while i <= lineNumber:
print original.readline()
i += 1
Ich sehe nicht, wie dies würde ich Daten verlieren, aber Python denkt, es würde und sagt ValueError: Mixing iteration and read methods would lose data
. Weiß jemand, wie man das richtig macht?
-1: Code aus dem Snippet fehlt. Es gibt wahrscheinlich ein "für etwas im Original:", das im gezeigten Code fehlt. –