你可以使用 os
和 shutil
模块来实现这个需求。以下是一个可能的实现:
import os
import shutil
def check_folder_size(folder_path, limit=1):
# 把限制大小转换为字节
limit = limit * 1024 * 1024 * 1024
# 计算文件夹大小
folder_size = 0
for path, dirs, files in os.walk(folder_path):
for f in files:
fp = os.path.join(path, f)
folder_size += os.path.getsize(fp)
# 如果文件夹大小超过限制,删除最早的文件
while folder_size > limit:
oldest_file = None
oldest_file_time = None
# 找到最早的文件
for path, dirs, files in os.walk(folder_path):
for f in files:
fp = os.path.join(path, f)
file_time = os.path.getmtime(fp)
if oldest_file is None or file_time < oldest_file_time:
oldest_file = fp
oldest_file_time = file_time
# 删除最早的文件并重新计算文件夹大