[python] test eof
Petr Prikryl
PrikrylP na skil.cz
Pátek Listopad 18 08:32:59 CET 2005
Jiri Vit napsal...
> Nevite nekdo jak efektivne zjistit posledni radek v souboru,
> cili obdoba eof() z perlu?
>
> Nekde jsem nasel postup v modulu fileinput to kontrolovat takto:
> "fileinput.isfirstline() and fileinput.lineno() != 1"
>
> Existuje jeste nejaky elegantnejsi zpusob?
K tomu, co napsali ostatní, přidávám...
Pokud se čte po jednotlivých řádcích, pak
se při čtení řádku po konci souboru
vrací prázdný řetězec. V opačném případě
se vrací vždy neprázdný řetězec, protože
i u prázdných řádků pocházejících ze souboru
se vrací "\n". Příklad:
f = file('a.txt')
radek = 'xxx'
while radek != '':
radek = f.readline()
print radek,
Tento příklad je zjednodušený, takže
se jakoby tiskne i ten prázdný řádek,
který nepochází ze souboru. Ale u print
je potlačen automatický přechod na nový
řádek, takže se navíc objeví asi jen
mezera (oddělovač argumentů u print),
možná ani to ne (nezkoušel jsem).
pepr
Další informace o konferenci Python