python清除代码_python 日志清除代码片段

# -*- coding: cp936 -*-

#甄码农python代码

#日志清除工具

import os

import os.path

import time

import pprint

import sys

def clean(rootdir,logext,ageInDaysToClean=7):

"""

清理rootdir目录下超过ageInDaysToClean天未更新的扩展名为logext的日志文件

"""

now = time.time()

timeInSeconds = ageInDaysToClean*24*60*60

toclean = []

#找到过期日志文件

for root,dirs,files in os.walk(rootdir,True,None,False) :

#print root,dirs,files

fs = [os.path.join(root,f) for f in files if os.path.splitext(f)[1] == logext and now - os.stat(os.path.join(root,f))[-2] > timeInSeconds]

toclean.extend(fs)

#删除过期日志文件

writetimes = map(lambda _: time.localtime(os.stat(_)[-2]),toclean)

for f,t in zip(toclean,writetimes):

print f,time.strftime('%Y-%m-%d %H:%M:%S',t)

os.remove(f)

#清空目录

removedirs = []

for root,dirs,files in os.walk(rootdir):

emptys = [os.path.join(root,dirname) for dirname in dirs if len(os.listdir(os.path.join(root,dirname))) == 0]

removedirs.extend(emptys)

pprint.pprint(removedirs)

map(lambda _: os.rmdir(_),removedirs)

if __name__ == '__main__':

args = sys.argv[1:]

if len(args) == 0 :

print '必须指定日志文件目录'

else :

logdir = args[0]

ext = '.log'

if len(args)>0: ext = args[1]

days = 7

if len(args)>1: days= int(args[2])

clean(logdir,ext,days)

sys.exit(0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值