用戶微信目錄因常年累月用戶上傳圖片較多,造成硬盤資源將耗盡,但客戶要求至少保存一個月的文件,
然而幾十萬張圖片的文件夾,不論是打開,排序刪除都是非常消耗服務器性能的,因為裝載這10多個G的文件必然會造成內存和CPU的
大量消耗,因此寫了python腳本來自動刪除30天以前的文件
代碼如下
#-*- coding:utf-8 -*-
import os
import time
import datetime
class clean:
def __init__(self, file_url):
self.file_url = file_url
def delfile(self):
f = list(os.listdir(self.file_url))
print("%s\n 開始清理過期文件...." % self.file_url)
for i in range(len(f)):
filedate = os.path.getmtime(self.file_url + f[i])
time1 = datetime.datetime.fromtimestamp(filedate).strftime('%Y-%m-%d')
date1 = time.time()
num1 =(date1 - filedate)/60/60/24
if num1 >= 30:
try:
os.remove(self.file_url + f[i])
print(u"已刪除文件:%s : %s" % (time1, f[i]))
except Exception as e:
print(e)
else:
print("......")
file1 = clean('E:\\web\\WS3.0\\Upload\\android\\video\\')
file1.delfile()
print(u'過期文件已清理完畢:%s\n' % file1.file_url)
file2 = clean('E:\\web\\WS3.0\\Upload\\android\\wechat\\')
file2.delfile()
print(u'過期文件已清理完畢:%s\n' % file2.file_url)
file3 = clean('E:\\web\\WS3.0\\Upload\\eDog\\complain\\')
file3.delfile()
print(u'過期文件已清理完畢:%s\n' % file3.file_url)
file4 = clean('E:\\web\\WS3.0\\Upload\\eDog\\shark\\')
file4.delfile()
print(u'文件夾已清理完畢:%s\n' % file4.file_url)
file5 = clean('E:\\web\\WS3.0\\Upload\\Ticket\\')
file5.delfile()
print(u'文件夾已清理完畢:%s\n' % file5.file_url)
效果圖:
END!