Esercizio 3 Prova Pratica 29-05-14
Jump to navigation
Jump to search
Il comando che dovrete implementare come script shell o programma python e' statlen.
Data una directory statlen fa una statistica sulla lunghezza dei nomi dei file presenti in tutto il sottoalbero con radice nella
directory passata come parametro.
es.
$ statlen /tmp
2: 2
3: 10
5: 4
...
significa che in tmp (e in tutte le sottodir.ectory di /tmp) ci sono 2 file con nome di due caratteri, 10 con nomi di 3 caratteri e
cosi' via.
Soluzione di Krusty
import os, sys
from stat import *
def recScan(pathname,v):
for f in os.listdir(pathname):
path = os.path.join(pathname,f)
s = os.stat(path)
if S_ISREG(s.st_mode):
l = len(f)
if(l not in v):
v[l]=1
else:
v[l] = v[l] + 1
elif S_ISDIR(s.st_mode):
recScan(path,v)
v = {}
recScan(sys.argv[1],v)
for key in v:
print(key, ':', v[key])