溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用python實現自動清理文件夾舊文件

發(fā)布時間:2022-01-26 09:42:23 來源:億速云 閱讀:107 作者:iii 欄目:開發(fā)技術

今天小編給大家分享一下怎么用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è)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI