Difference between revisions of "Prova pratica 2014.07.17"
Jump to navigation
Jump to search
m (Migliorata organizzazione pagina) |
|||
Line 1: | Line 1: | ||
− | == | + | ==Esercizio 3== |
<source lang="text"> | <source lang="text"> | ||
Il comando che dovrete implementare come script shell o programma python e' mytx. | Il comando che dovrete implementare come script shell o programma python e' mytx. | ||
Line 13: | Line 13: | ||
</source> | </source> | ||
− | ==Soluzione di Krusty== | + | ===Soluzione di Krusty=== |
<source lang="python"> | <source lang="python"> | ||
import os, sys | import os, sys | ||
Line 30: | Line 30: | ||
out_file.close() | out_file.close() | ||
</source> | </source> | ||
− | ==Soluzione di Stefano Zaniboni== | + | ===Soluzione di Stefano Zaniboni=== |
<source lang="python"> | <source lang="python"> | ||
#!/bin/usr/env python3 | #!/bin/usr/env python3 |
Revision as of 08:35, 9 May 2017
Esercizio 3
Il comando che dovrete implementare come script shell o programma python e' mytx.
Tale comando elenca tutti i file di una directory.
mytx ddd ddd.tx
Ogni riga del file di output (secondo parametro) deve contenere la lunghezza, uno spazio e il nume del file. Dopo l'ultima riga
deve inserire una riga bianca.
ddd.t2 deve contenere l'elenco dei file regolari. Il primo campo e' un numero intero seguito da uno spazio, tutto cio' che segue
fino alla fine riga e' il nome del file.
es.
12 file1
235 file di prova
Soluzione di Krusty
import os, sys
from stat import *
out_file = open(sys.argv[2],"w")
for f in os.listdir(sys.argv[1]): #scorre file nella directory
path = os.path.join(sys.argv[1],f)
s = os.stat(path)
if S_ISREG(s.st_mode):
info = str(os.path.getsize(path)) + ' ' + f #scrive dimensione e nome file in info
out_file.write(info + "\n")
out_file.write("\n")
out_file.close()
Soluzione di Stefano Zaniboni
#!/bin/usr/env python3
import sys
import os
def writeOnFile(fileToWrite, fileName):
with open(fileToWrite, "a") as afile:
course = fileName
of = os.path.getsize(fileName)
total = str(of)+' '+str(course)
afile.write(str(total))
afile.write('\n')
afile.close()
return None
###########################################
if __name__=="__main__":
myDir=sys.argv[1]
os.system("touch ddd.tx")
for root, dirname, filenames in os.walk(myDir):
for filename in filenames:
writeOnFile("ddd.tx", os.path.join(root,filename))
if os.path.isfile(os.path.join(root, filename)):
writeOnFile("ddd2.tx", filename)