# -*- coding:utf-8 -*-
# 實現自動保留ctime最近的幾個文件
import os
def rm_backup(files_list, days):
"""
刪除文件列表中的時間最早的文件
:param files_list: 文件列表
:param days:保留天數
"""
dic = {}
for i in files_list:
all_path = i
ctime = os.path.getctime(all_path)
dic[all_path] = ctime
all_path_ctime_list = sorted(dic.items(), key=lambda item: item[1])
if len(all_path_ctime_list) <= days:
pass
else:
for i in range(len(all_path_ctime_list) - days):
os.remove(all_path_ctime_list[i][0])
def list_file(prefix, dirs=os.path.abspath('.'), res=None):
"""
查找當前目錄下以prefix為前綴的文件路徑列表
:param prefix: 前綴名
:param dirs: 查找目錄
:param res: 結果
:return: 結果
"""
if res is None:
res = []
for x in os.listdir(dirs):
path = os.path.join(dirs, x)
if os.path.isfile(path) and os.path.splitext(x)[0].startswith(prefix):
res.append(path)
if os.path.isdir(path):
list_file(prefix, path, res)
return res
rm_paths = list_file("valid_content")
rm_backup(rm_paths, 3)