[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