|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
[Python] Cancellare files più vecchi di X mesi
Vorrei fare un programmino in Python che mi cancelli i files contenuti in una directory che però siano più vecchi di almeno X mesi.
Per cominciare ho buttato giù qualche riga di codice che vorrei che stampasse nome file e data di tutti i files di una directory: Codice:
import os,time def modification_date(filename): t = os.path.getmtime(filename) return datetime.datetime.fromtimestamp(t) path="." # per ora metto la dir corrente dirList=os.listdir(path) for fname in dirList: print fname d = modification_date(fname) print d EDIT: per ora così riesco solo a farmi stampare data e ora di ogni file: Codice:
import os,time,datetime def modification_date(filename): t = os.path.getmtime(filename) return datetime.datetime.fromtimestamp(t) path="." dirList=os.listdir(path) for fname in dirList: #print fname d = modification_date(fname) print d Ora se decommento print fname, mi da problemi. Ultima modifica di fbcyborg : 11-05-2010 alle 08:23. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
che versione di python usi?
Dalla 3 in poi non puoi più usare "print 'ciao'" ma è obbligatorio usare la sintassi "print('ciao')"
__________________
![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Sulla macchina che dovrà eseguire quel codice c'è la versione 2.4. Sulla mia invece la 2.6, dove sto provando il codice.
Al momento sono giunto a scrivere il seguente codice: Codice:
import os,time,datetime,math def modification_date(filename): t = os.path.getmtime(filename) return datetime.datetime.fromtimestamp(t).date() path="." dirList=os.listdir(path) for fname in dirList: d = modification_date(fname) if datetime.datetime.now().date() - d > datetime.timedelta(180): print fname |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Credo di aver risolto nel seguente modo:
Codice:
import os,time,datetime,math def modification_date(filename): t = os.path.getmtime(filename) return datetime.datetime.fromtimestamp(t).date() path="/tmp/" dirList=os.listdir(path) for fname in dirList: d = modification_date(fname) if datetime.datetime.now().date() - d > datetime.timedelta(30): os.remove(path+fname) |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:06.