python 根據資料夾大小刪除修改時間比較早的檔案
阿新 • • 發佈:2019-02-12
'''根據資料夾大小定時刪除資料夾部分比較舊的資料''' import os import time import datetime FILE_DIR = 'E:/Djangocode/RSMDSys/static/imagedata/' '''計算資料夾容量 單位為MB''' def fileCapacity(FILE_DIR): s=0 for root, dirs, files in os.walk(FILE_DIR): for f in files: s=s+os.path.getsize(os.path.join(root, f)) return s/1024/1024 #單位為MB def fileremove(filename): if os.path.exists(filename): os.remove(filename) print('remove file: %s' % filename) else: print('no such file: %s' % filename) if __name__ == '__main__': i=0 # while True: # 獲取資料夾容量 file_capacity=fileCapacity(FILE_DIR) # if file_capacity>50: ITEMS = os.listdir(FILE_DIR) #FILE_DIR中的所有檔案 create_time = [] file_name=[] for names in ITEMS: if names.endswith(".jpg"): filename=FILE_DIR+names file_name.append(filename) create_time.append(os.path.getmtime(filename))#獲取檔案的修改時間 dit={} #將兩個list轉換為dict dit=dict(zip(create_time,file_name)) print(dit) #根據dit的key對dit進行排序(變為list) dit=sorted(dit.items(),key=lambda d:d[-1],reverse=False) print(dit) for i in range(60): #刪除檔案個數 file_location=dit[i][1] fileremove(file_location) print(dit)