压缩.log 文件为zip后删除原文件
需要注意:本人作为小白,该脚本需要和.log在一起,后面有时间需要改正。
#!/usr/local/python/bin/python
#-*-coding=utf8 -*-
import time
import os
import sys
import zipfile
N = 7 #设置删除多少天前的文件
def zip(srcpath):
for folder,sumfolder,files in os.walk(srcpath):
for file in files:
lastmodifytime = os.stat(os.path.join(srcpath,file)).st_mtime
endfiletime = time.time() - 3600 * 24 * N #设置删除多久之前的文件
if endfiletime > lastmodifytime:
if file.endswith(".log") or file.endswith(".txt") or file.startswith("app.log"): #处理后缀为.log和.txt 的文件,或者文件名开头为app.log 的文件
fantasy_zip=zipfile.ZipFile(file + ".zip","w",allowZip64 = True) #对大于4G的文件也可以操作
fantasy_zip.write(os.path.join(folder,file),os.path.relpath(os.path.join(folder,file),srcpath),compress_type = zipfile.ZIP_DEFLATED)
fantasy_zip.close()
os.remove(file)
print "删除文件 %s 成功" % filename
if __name__ == "__main__":
srcpath = r"/home/xiaodao/logs"
zip(srcpath)