经过一天的尝试,终于写了一个脚本,清理日志文件,源代码如下:
#!/usr/bin/python
#-*-coding=utf8 -*-
import time
import os
N = 1 #设置删除多少天钱的文件
def deletefile(path):
for eachfile in os.listdir(path):
filename = os.path.join(path,eachfile)
if os.path.isfile(filename):
lastmodifytime = os.stat(filename).st_mtime
print '======================'
print "当前时间是: %s" % time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))
print "%s 文件的最后修改时间是: %s" % (filename,time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(lastmodifytime)))
print "%s 文件的创建时间是: %s" % (filename,time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(os.stat(filename).st_ctime)))
endfiletime = time.time() - 3600 * 24 * N #设置删除多久之前的文件
print "删除文件的截至时间是: %s" % time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(endfiletime))
if endfiletime > lastmodifytime:
print "我要删除文件 : %s" % filename
os.remove(filename)
elif os.path.isdir(filename): #如果是目录则递归调用当前函数
deletefile(filename)
if __name__ == '__main__':
path = r"D:\python_script\log" #指定删除的目录位置
deletefile(path)
备注:其中print的可以注释掉,避免输出到控制台,由于这个是在windows中使用pycharm编辑的,直接放到linux中可能出现汉字乱码的情况,请调整linux字符集或者将汉字自己换成英文即可
转载于:https://blog.51cto.com/dongyonggang/1845234