#coding=utf-8
#自动清理时间到期的文件夹
import os
import time
import datetime
#删除文件夹下所有文件和子文件夹
def delete_file_folder(src):
'''delete files and folders'''
if os.path.isfile(src):
try:
os.remove(src)
except:
pass
elif os.path.isdir(src):
for item in os.listdir(src):
itemsrc=os.path.join(src,item)
delete_file_folder(itemsrc)
try:
os.rmdir(src)
except:
pass
def checktime(yourpath):
#根据时间计算
pathlist=os.listdir(yourpath)
extlist=['txt','jpg']#允许删除的文件格式
for i in range(len(pathlist)):
source=yourpath+'\\'+pathlist[i]
dirname=pathlist[i]
#print dirname
#print source
if os.path.isfile(source):
m=time.localtime(os.stat(source).st_ctime)#文件的创建时间
startime=datetime.datetime.now()
endtime=datetime.datetime(m.tm_year,m.tm_mon,m.tm_mday,m.tm_hour,m.tm_min,m.tm_sec) #年月日时分秒
mydays=(startime-endtime).seconds
ext=os.path.splitext(source)[1][1:].lower() #文件格式
if mydays>=10000 and ext in extlist:
#10000秒清空一次
os.remove(source)#如果存在文件,则删除
print '已删除',source,'文件'
#如果是目录
if os.path.isdir(source):
m=time.localtime(os.stat(source).st_ctime)#文件的创建时间
startime=datetime.datetime.now()
endtime=datetime.datetime(m.tm_year,m.tm_mon,m.tm_mday,m.tm_hour,m.tm_min,m.tm_sec) #年月日时分秒
mydays=(startime-endtime).seconds
ext=os.path.splitext(source)[1][1:].lower() #文件格式
if mydays>=10000 and dirname.startswith('201209'):
#10000秒清空一次
delete_file_folder(source)#删除文件夹下所有文件和子文件夹
print '已删除',source,'文件夹'
#测试用部分
if __name__ == '__main__':
try:
checktime('E:\\hippo\\target_10.201.76.152')
checktime('E:\\hippo\\target_FTP_TEST')
checktime('E:\\ftphome')
except Exception,se:
print str(se);