[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