1. 程式人生 > >python 根據資料夾大小刪除修改時間比較早的檔案

python 根據資料夾大小刪除修改時間比較早的檔案

'''根據資料夾大小定時刪除資料夾部分比較舊的資料'''
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)