[FoLUG] python
Stefano Giunchi
stefano.giunchi@soasi.com
Mar 12 Apr 2005 23:13:15 CEST
Visto che c'era un certo interesse...
questo potrebbe essere un inizio per le serate a tema python, all'endas
o all'itc dopo il corso:
ho creato lo script a fondo pagina: fornendogli il path di partenza, la
lista di estensioni dei files e n giorni, comprime in formato .zip i
files con tale estensione e più vecchi di tale data; 1 zip per ogni
file, ed il file viene eliminato (se lo zip viene creato correttamente)
L'ho creato e provato solo su windows; potrebbe essere di interesse:
1) verificare e migliorare il passaggio di argomenti allo script
2) migliorare il pattern matching dei files
3) non ho trovato il comando per uscire anticipatamente dallo script; ho
messo sys.exit(), che avevo letto da qualche parte, ma non funzia; cmq
quando ci passa sopra lo script va in errore, quindi il risultato è
quasi quello voluto :)
3) aggiungere opzioni... funzioni particolari... boh?
4) in pratica, fare il lavoro che a me serve, a gratis :-)
Se qualcuno è interessato, possiamo iniziare da qualcosa di così
semplice per, magari, di funzione in funzione, imparare a programmare in
python tutti inzieme comme 'na grande famigggglia!
Stefano
ATTENZIONE A:
1) I RITORNO A CAPO CAUSATI DALL'EMAIL!
2) I RIENTRI SONO STATI FATTI CON IL TAB; COME FORSE SAPETE, IL RIENTRO
DELLA RIGA E' SIGNIFICATIVO, QUINDI SE NON FUNZIA FORSE DOVETE PRIMA
CONTROLLARE QUELLO
############################################################################
##
## ZIPPY
##
## zippy.py <path> <est> <mingg>
##
## zippa i file a partire da <path>, con l'estensione <est> e più
## vecchi di <mingg>
##
## es: zippy.py /home/utente doc 730
##
## <est> può essere anche una lista, separata da "|"
##
## es: zippy.py /home/utente doc|xls|dwg 730
############################################################################
import os
import string
import re
import time
#comprime il file e lo rimuove, se è andato tutto bene
def Zippa(nomefile):
import zipfile
nomezip = string.lower(nomefile) [:-3] + 'zip'
print "Zippa: " + nomefile + " => " + nomezip
if os.path.exists (nomezip):
modo = "a"
else:
modo = "w"
try:
Z = zipfile.ZipFile (nomezip, modo, 8)
Z.write (nomefile)
Z.close ()
os.remove(nomefile)
except:
pass
try:
path = os.sys.argv[1] #'\\\\stcg1\\documenti\\2_stcspa\\2_2002'
est = os.sys.argv[2]
mingg = int(os.sys.argv[3])
except:
print "Uso: zippy.py <path> <est> <mingg>"
sys.exit
ta = time.time()
for root, dirs, files in os.walk(path):
for F in files:
nomefile = os.path.join(root,F)
if re.compile(string.lower(est)).match(string.lower(nomefile[-3:])):
#if string.lower(nomefile) [-3:] == string.lower(est):
tf = os.path.getmtime(nomefile)
if ((ta - tf) / 86400) > mingg:
Zippa(nomefile)
--
Maggiori informazioni sulla lista
FoLUG