Difference between revisions of "Prova pratica 17 07 12"
Jump to navigation
Jump to search
(Created page with "==Soluzione di Pierg== <source lang ="text"> Lo script o il programma Python deve fornire una lista dei file all'interno di un sottoalbero ordinati secondo il la “profondit...") |
|||
(One intermediate revision by the same user not shown) | |||
Line 5: | Line 5: | ||
poi tutti quelli al secondo livello), in ordine alfabetico fra quelli allo stesso livello. | poi tutti quelli al secondo livello), in ordine alfabetico fra quelli allo stesso livello. | ||
</source> | </source> | ||
− | <source lang=" | + | <source lang="python"> |
import os, sys | import os, sys | ||
Line 22: | Line 22: | ||
tree(pathname) | tree(pathname) | ||
+ | </source> | ||
+ | |||
+ | <source lang ="text"> | ||
+ | Il comando che dovrete implementare come script shell o programma python e' maxfreq. | ||
+ | Maxfreq ha come parametro un carattere alfanumerico e una directory. | ||
+ | Es: | ||
+ | maxfreq q mydir | ||
+ | Cerca in tutto il sottoalbero del file system originato da mydir il file che ha la maggior frequenza della lettera indicata | ||
+ | (in questo caso la maggior frequenza di 'q'). Fornisce in output il nome del file e la frequenza in percentuale. | ||
+ | </source> | ||
+ | <source lang="python"> | ||
+ | import os, sys | ||
+ | |||
+ | pathname = sys.argv[2] | ||
+ | c = sys.argv[1] | ||
+ | |||
+ | def maxfreq(c, pathname): | ||
+ | maxi = 0 | ||
+ | for path, dirs, files in os.walk(pathname): | ||
+ | for file in files: | ||
+ | if (file.count(c) > maxi): | ||
+ | maxi = file.count(c) | ||
+ | f = file | ||
+ | print ("The file is {} with maxfreq {}".format(f, maxi)) | ||
+ | |||
+ | |||
+ | |||
+ | maxfreq(c, pathname) | ||
</source> | </source> |
Latest revision as of 20:14, 11 April 2015
Soluzione di Pierg
Lo script o il programma Python deve fornire una lista dei file all'interno di un sottoalbero ordinati
secondo il la “profondita'” nell'albero (prima tutti quelli nella radice del sottoalbero,
poi tutti quelli al secondo livello), in ordine alfabetico fra quelli allo stesso livello.
import os, sys
pathname = sys.argv[1]
def tree (pathname):
for path, dirs, files in os.walk(pathname):
print dirs
files.sort()
level = path.replace(pathname, '').count(os.sep)
indent = ' ' * 4 * (level)
print('{}{}/'.format(indent, os.path.basename(path)))
subindent = ' ' * 4 * (level + 1)
for file in files:
print('{}{}'.format(subindent, file))
tree(pathname)
Il comando che dovrete implementare come script shell o programma python e' maxfreq.
Maxfreq ha come parametro un carattere alfanumerico e una directory.
Es:
maxfreq q mydir
Cerca in tutto il sottoalbero del file system originato da mydir il file che ha la maggior frequenza della lettera indicata
(in questo caso la maggior frequenza di 'q'). Fornisce in output il nome del file e la frequenza in percentuale.
import os, sys
pathname = sys.argv[2]
c = sys.argv[1]
def maxfreq(c, pathname):
maxi = 0
for path, dirs, files in os.walk(pathname):
for file in files:
if (file.count(c) > maxi):
maxi = file.count(c)
f = file
print ("The file is {} with maxfreq {}".format(f, maxi))
maxfreq(c, pathname)