自动清理日志文件

 

 

#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);
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值