[python] hledani konkretnich souboru
Radek Svarz
py.cz na svarz.cz
Úterý Srpen 10 16:13:04 CEST 2004
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.
Rekl jsem si, fajn, vezmu Python, kouknu na knihovny, tam bude neco
jako findandcount(startdir, filenamepattern, textpattern). Jenze nikde
nic. Tak jsem udelal tenhle skript, ale vubec se mi nelibi - prijde mi
prilis dlouhy, na to ze to je v pythonu pro tak trivialni task.
Mohl by nekdo napsat, jak tenhle kod zjednodusit? cekal bych neco na 3
radky ;)
Diky,
Radek
howmany.py
import os, glob
from os.path import join
numbuttons = 0
numdefines = 0
numphps = 0
numtextphps = 0
print os.path.abspath(''), " >> searching through..."
for root, dirs, files in os.walk('./'):
for dir in dirs:
dirdefines = 0
dirname=join(root, dir)
buttons=glob.glob1(dirname, 'button*.gif')
numbuttons+=len(buttons)
phps = glob.glob1(dirname, '*.php')
numphps += len(phps)
for fname in phps:
filedefines = 0
fullname=join(dirname, fname)
f = file(fullname)
for line in f.readlines():
filedefines += line.count("define('")
f.close()
if filedefines>0:
numtextphps+=1
print fullname, filedefines
dirdefines+=filedefines
numdefines+=dirdefines
print "----------------- sum for dir:"
print "%s: %s buttons %s texts in %s files"%(dirname, len(buttons), dirdefines, len(phps))
print "------------------------------"
print " Sum ====================", os.path.abspath('')
print " Buttons %s, Texts %s in %s/%s files/allphps"%(numbuttons, numdefines, numtextphps, numphps)
Další informace o konferenci Python