[python] Hledani v souboru
geon
geon na post.cz
Neděle Červenec 24 13:49:03 CEST 2005
Petr Prikryl wrote:
> --------------------------------
> fname = 'soubor.txt'
> pattern = 'vzorek'
>
> f = file(fname, 'rb')
> content = f.read()
> f.close()
>
> index = content.find(pattern)
>
> print index
> print '-' * 70
> --------------------------------
>
> V tomto případě jsem použil binární režim
> otvírání souboru. Při použití textového režimu se
> například pod Windows ohlásí chybná pozice, protože
> se oddělení řádků převede z dvouznakového
> na jednoznakové.
Moc tomu nerozumím. Když použiji:
-----------------------------------
fname = 'soubor.txt'
pattern = 'obsah'
f = file(fname, 'rb')
content = f.read()
f.close()
index = content.find(pattern)
print content[index: index+len(pattern)]
------------------------------------
tak mi to přeci správně vytiskne slovo 'obsah'.
Druhá pravda je, že když to číslo, tu pozici index použiji na vyhledání třebas v PSPadu (CTRL+G),
tak je správná pozice při 'rb'. U 'r' je to číslo nižší o tolik, kolik je řádku do hledaného místa.
(každý řádek jedno \r).
Takže bych řekl, že použití 'r' nevadí, pokud zustaneme v rámci jednoho skriptu. Že to pak žádnou
chybu vyhodit nemůže. Ale výsledky jsou neporovnatelné s jinými vyhledávácími nástroji....
Díky
--
geon
Vyjímka je pravidlo. Rekurzivní.
Další informace o konferenci Python