[python] hledani konkretnich souboru
Radek Svarz
py.cz na svarz.cz
Úterý Srpen 10 18:09:16 CEST 2004
ano, odhadl jste me presne - pouzivam Windows, kde find neni.
Navic jsem to bral jako cviceni Pythonu a overeni, ze neco takoveho
mohu napsat rychle a jednoduse (proste tak, jak se o pouziti Pythonu
neustale pise).
Divil bych se, ze to nejde napsat efektneji.
VM> Upozornuji, ze je pametove docela neefektivni pomoci metody readlines()
VM> nacitat cely soubor naraz, kdyz vas zajimaji jednotlive radky.
for line in f.readlines():
No tady bych cekal, ze Python udela pametovou optimalizaci za me,
proste ze precte radky tehdy, kdyz jsou potreba.
Radek
VM> [Autor citovane zpravy: Radek Svarz, cas odeslani: 10.08.2004 16:13]
>>Vážení,
>>koketuju s Pythonem nekolik mesicu. Nedavno jsem narazil na ulohu na
>>spocitani narocnosti prekladu jednoho softu. Primarne jsem chtel
>>spocitat, kolik buttonu (gif) bude treba prelozit a kolik frazi (v
>>ruznych mnoha souborech, fraze je urcena zacatkem "define('" na radce)
>>se ve zdrojacich nachazi.
>>
>>Mohl by nekdo napsat, jak tenhle kod zjednodusit? cekal bych neco na 3
>>radky ;)
>>
>>
VM> Proc delat veci jednoduse, kdyz to jde slozite, ze? :-)
VM> Co pouzit neco jako tohle:
VM> find -type f -name 'button*.gif' | wc -l
VM> ( find -type f -name '*.php' -print0 | xargs -0 grep '^define(' ) |
VM> wc -l
VM> Pokud 'define(' muze byt v libovolnem souboru, lze druhy prikaz zkratit na:
VM> grep -r '^define(' * | wc -l
VM> Predpoklada se, ze 'define(' muze byt na kazdem radku jen jedenkrat, a
VM> to na zacatku radku. Pokud chcete spocitat vyskyt vsech retezcu
VM> 'define(' v souborech, tak by se do pajpy jeste muselo vlozit neco jako
VM> prikaz 'tr'.
VM> Pozor na to, ze muze byt dovoleno mezi klicove slovo a zavorku psat bile
VM> znaky.
VM> Ehm, take predpokladam, ze pouzivate Linux (jine Unixy nemaji tak
VM> pritulne utility a nemusi tam toto fungovat). Pokud to ma byt pro
VM> Windows, asi uz budete zvykly na to, jak se drbat levou rukou pres hlavu
VM> na pravem uchu a budete potrebovat neco jako program, ktery jste poslal. :-)
VM> Upozornuji, ze je pametove docela neefektivni pomoci metody readlines()
VM> nacitat cely soubor naraz, kdyz vas zajimaji jednotlive radky.
VM> Vlada
Další informace o konferenci Python