|
|||||||
|
|
|
![]() |
|
|
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 09: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: 07:28.




















