Piszę skrypt, który rejestruje błędy z innego programu i uruchamia ponownie program w miejscu, w którym przerwał działanie po napotkaniu błędu. Z jakichkolwiek przyczyn twórcy tego programu domyślnie nie uważali za konieczne umieszczania tej funkcji w swoim programie.Mieszanie plików i pętli
W każdym razie program pobiera plik wejściowy, analizuje go i tworzy plik wyjściowy. Plik wejściowy jest w określonym formacie:
UI - 26474845
TI - the title (can be any number of lines)
AB - the abstract (can also be any number of lines)
Gdy program zgłasza błąd, to daje informacje odniesienia potrzebne do śledzenia błędów - mianowicie, interfejs użytkownika, który odcinek (tytuł lub streszczenie) i numer linii odnoszący się do początku tytułu lub streszczenia. Chcę zapisać niepoprawne zdania z pliku wejściowego za pomocą funkcji, która pobiera numer referencyjny i plik, znajduje zdanie i loguje je. Najlepszym sposobem na zrobienie tego jest poruszanie się po pliku określoną liczbę razy (mianowicie n razy, gdzie n jest numerem linii względem początku sekundy). Sposób, który wydawał się mieć sens, aby to zrobić:
i = 1
while i <= lineNumber:
print original.readline()
i += 1
nie widzę w jaki sposób miałoby to mnie stracić dane, ale Python myśli, że będzie, i mówi: ValueError: Mixing iteration and read methods would lose data
. Czy ktoś wie, jak to zrobić właściwie?
-1: Kod brakuje fragmentu. Prawdopodobnie w wyświetlonym kodzie brakuje "czegoś w oryginale". –