Często muszę przetwarzać duże pliki tekstowe zawierające nagłówki w pierwszym wierszu. Nagłówki są często traktowane inaczej niż treść pliku lub przetwarzanie mojego ciała zależy od nagłówków. Tak czy inaczej muszę traktować pierwszą linię jako specjalny przypadek. mogę używać prostych linii iteracji i ustawić flagę:Jak inaczej traktować pierwszy wiersz pliku w Pythonie?
headerProcessed = false
for line in f:
if headerProcessed:
processBody(line)
else:
processHeader(line)
headerProcessed = true
ale lubię test w pętli, który jest zbędny dla wszystkich, ale jeden z milionów razy to realizuje. Czy istnieje lepszy sposób? Czy mogę potraktować pierwszą linię inaczej, a następnie rozpocząć iterację w drugiej linii? Czy powinienem się przejmować?
Dzięki Greg. Jest to dokładnie to, co bym oczekiwał, ale w jakiś sposób założyłem, że pozycja pliku zostanie zresetowana na początku pętli for. Lekcja w języku Python: należy oczekiwać prostej metody działania! –
Kolejna lekcja do nauki: sprawdź swoje założenia. Mogłeś go po prostu wypróbować i dowiedzieć się, ale wtedy wszyscy nie skorzystalibyśmy z tej interesującej wymiany! – Todd
Powyższe działa, ale ogólnie można uzyskać: "ValueError: miksowanie iteracji i metod odczytu utraci dane". – jfs