作者:liuyu
glob模块可以查找符合特定规则的文件路径名。跟使用windows下的文件搜索差不多。查找文件只用到三个匹配符:”*”, “?”, “[]“。”*”匹配0个或多个字符;”?”匹配单个字符;”[]“匹配指定范围内的字符,如:[0-9]匹配数字。
例子:
import glob
#获取指定目录下的所有图片
print glob.glob(r"E:/Picture/*/*.jpg")
#获取上级目录的所有.py文件
print glob.glob(r'../*.py') #相对路径
现在有这样一个需求,删除过期应用日志,过期时间2天,root目录下所有insert开头的log文件。
DeleteLogfile类的属性有文件名,过期天数,文件所在路径,通过调用delete方法来删除过期的日志。
代码如下:
-
#!/usr/bin/env python
-
-
#'delete old log,20160104'
-
#author :liuyu
-
-
import os
-
import glob
-
import time
-
import datetime
-
class DeleteLogfile(object):
-
-
def __init__(self,filename='insert*.log',days=2,path='/root'):
-
self.__filename = filename
-
self.__days = days
-
self.__path =path
-
-
def delete(self):
-
xDate = (datetime.datetime.now() - datetime.timedelta(days = self.__days))
-
files = glob.glob(self.__path+'/'+self.__filename)
-
for log in files:
-
stats=os.stat(log)
-
lastmodDate = time.localtime(stats[8])
-
expDate = xDate.strftime('%Y-%m-%d')
-
expDate = time.strptime(expDate, '%Y-%m-%d')
-
print log, time.strftime("%m/%d/%y", lastmodDate)
-
if expDate > lastmodDate:
-
try:
-
print 'Removing', log, time.strftime("(older than %m/%d/%y)", expDate)
-
os.remove(log)
-
except OSError:
-
print 'Could not remove', log
-
-
if __name__ == '__main__':
-
obj = DeleteLogfile()
-
obj.delete()
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30109892/viewspace-1973094/
,如需转载,请注明出处,否则将追究法律责任。