欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

自动清理日志文件

程序员文章站 2022-06-26 19:12:36
...

 

 

#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);