您好,登錄后才能下訂單哦!
今天小編給大家分享一下怎么用python實現自動清理文件夾舊文件的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
由于程序一直在不停地存圖,因此需要監(jiān)測圖片文件夾的大小,一旦超過指定大小則刪除一部分最早的圖片。
采用開線程的方式,在線程里每隔一段時間鍵執(zhí)行一次監(jiān)測過程。
即 測文件夾大小->若超過則將文件夾里的文件按最后修改時間排序->刪除一些最早的圖片->刪的過程中監(jiān)測文件夾大小是否符合要求
# -*- coding: utf-8 -*-
#
# 開線程檢測文件夾大小,超過指定大小,則按文件最后修改時間排序并刪除一部分舊圖片
# 在線程里每隔一段時間檢測一次
#
import os
import threading
import time
#文件按最后修改時間排序
def get_file_list(file_path):
dir_list = os.listdir(file_path)
if not dir_list:
return
else:
dir_list = sorted(dir_list, key=lambda x: os.path.getmtime(os.path.join(file_path, x)))
#print(dir_list)
return dir_list
#獲取文件夾大小
def get_size(file_path):
totalsize=0
for filename in os.listdir(file_path):
totalsize=totalsize+os.path.getsize(os.path.join(file_path, filename))
#print(totalsize / 1024 / 1024)
return totalsize / 1024 / 1024
# 1文件目錄 2文件夾最大大小(M) 3超過后要刪除的大小(M)
def detect_file_size(file_path, size_Max, size_Del):
print(get_size(file_path))
if get_size(file_path) > size_Max:
fileList = get_file_list(file_path)
for i in range(len(fileList)):
if get_size(file_path) > (size_Max - size_Del):
print ("del :%d %s" % (i + 1, fileList[i]))
os.remove(file_path + fileList[i])
#檢測線程,每個5秒檢測一次
def detectPicSize():
while True:
print('======detect============')
detect_file_size("../pic/", 30, 5)
time.sleep(5)
if __name__ == "__main__":
#創(chuàng)建檢測線程
detect_thread = threading.Thread(target = detectPicSize)
detect_thread.start()
以上就是“怎么用python實現自動清理文件夾舊文件”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。