操作LOG文件-删除log目录下,所有的空文件-删除5天前的文件

本文介绍了一个Python脚本,用于清理指定目录下的日志文件。该脚本能够删除空的日志文件,并移除超过五天的老日志。通过使用os模块遍历文件夹,结合时间戳进行日期比较。
# 1logs目录下,有一部分文件是空的
# 1、删除log目录下,所有的空文件
# 2、删除5天前的文件

# 需求分析:
# 1os.walk()获取到所在以.log结尾的文件
# 2、判断文件的大小,os.getsize()
# 3、先从文件件名里面获取到文件的日期,然后把日期转成时间戳
# 4、再获取到当年的时间戳,时行比较

import os,time,datetime
def strToTimestamp(str=None,format='%Y%m%d%H%M%S'):
# 20180421165643
#默认返回当前时间戳
if str: #如果传了时间的话
tp = time.strptime(str,format) #格式化好的时间,转成时间元组
res = time.mktime(tp)#再转成时间戳
else:
res = time.time() #默认取当前的时间戳
return int(res)

def clean_log(path):
for abs_path,dir,file in os.walk(path):
for f in file:
if f.endswith('.log'):
full_path = os.path.join(abs_path,f) #文件的绝对理解
f_date = f.split('_')[-1].split('.')[0] #文件名里面的日期
f_date_time_stamp = strToTimestamp(f_date,'%Y-%m-%d') #把文件名里面的日期转成时间戳
five_day = str(datetime.date.today() + datetime.timedelta(-5)) #获取到5天前的日期
five_day_time_stamp = strToTimestamp(five_day, '%Y-%m-%d') # 再把天前的日期转成时间戳
if os.path.getsize(full_path)==0 or f_date_time_stamp<five_day_time_stamp:
os.remove(full_path)
clean_log('logs')


转载于:https://www.cnblogs.com/jiadan/p/9033441.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值