[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