如果用python的方法删除N天前创建的文件?

如果用python的方法删除N天前创建的文件?

用find很方便,用popen也是一样的,但windows上不行,有没有用纯python的方法来删除的?

另外问一下如何知道某一个日期的上一天或前几天?
python的os模块和stat模块 搞定
先os.stat文件然后用stat来去需要的时间信息

比喻

os.stat("/home/a.c")[stat.ST_CTIME] -->得到创建时间

然后用time.gmtime(上面的返回值)就可以得到(2007, 8, 11, 12, 45, 33, 5, 223, 0)
这样一个时间元组 然后根据需要对比时间

ST_MTIME  -->最后修改时间
根据需要取

判断的时候 注意时间格式


符合的os.remove

想法就是这样 自己写 很简单的 查手册就可以搞定的

使用timedelta来计算两个datetime的时间对象差
#create by chenhuajie 2007-11-24

import os, sys,datetime,time
from stat  import *

path='c:\\test\\'
path2='c:\\test\\'
filelist=[]
filelist=os.listdir(path)
for i in range(len(filelist)):
        t1 = time.gmtime(os.stat(path+filelist)[ST_MTIME])  #get file's mofidy time
        t11 =  time.strftime('%Y-%m-%d',t1)
        year,month,day=t11.split('-')
        t111= datetime.datetime(int(year),int(month),int(day))       
        t2 = time.gmtime()
        t22 =  time.strftime('%Y-%m-%d',t2)
        year,month,day=t22.split('-')
        t222= datetime.datetime(int(year),int(month),int(day))       
        days =  (t222-t111).days
        if days>5 :  # if over 5 days then remove file
                try:
                        os.remove(path+filelist)
                        log=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')+"  remove "+path+filelist+"  success \n"
                except:
                        log=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')+"  remove "+path+filelist+"  fail \n"               
                fTemp=open(path2+"remove_file.log", 'a')       
                fTemp.write(log)
楼上的程序有BUG,我修订了一下,在win2003,py2.5下通过,如下:

[Copy to clipboard] [ - ]
CODE:
#create by chenhuajie 2007-11-24

import os, sys,datetime,time
from stat  import *

path='c:\\test\\'
path2='c:\\test\\'
filelist=[]
filelist=os.listdir(path)
for i in range(len(filelist)):
        t1 = time.gmtime(os.stat(path+filelist[i])[ST_MTIME])  #get file's mofidy time
        t11 =  time.strftime('%Y-%m-%d',t1)
        year,month,day=t11.split('-')
        t111= datetime.datetime(int(year),int(month),int(day))        
        t2 = time.gmtime()
        t22 =  time.strftime('%Y-%m-%d',t2)
        year,month,day=t22.split('-')
        t222= datetime.datetime(int(year),int(month),int(day))        
        days =  (t222-t111).days
        if days>5 :  # if over 5 days then remove file
                try:
                        os.remove(path+filelist[i])
                        log=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')+"  remove "+path+filelist[i]+"  success \n"
                except:
                        log=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')+"  remove "+path+filelist[i]+"  fail \n"               
                fTemp=open(path2+"remove_file.log", 'a')        
                fTemp.write(log)