[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