当最新添加的文件超过已用空间限制时,我必须删除 dir 中最旧的文件。我不知道为什么排序列表files = sorted(os.listdir(DIR), key=os.path.getctime)
在第一个元素上不包含最旧的文件(在本例中是名为“file_1”的文件)
代码
print('START: Cycle no. ', cycle)
time.sleep(1)
print('Saving {0} files. {1} MB each'.format(FILES_NUM, MB_FILE_SIZE))
i = 1
while (i < FILES_NUM):
usage = psutil.disk_usage(DIR)
used = usage.used // (2**20)
# print('Uzyta pamiec: ', used)
if (used < 50): # 50 MB
print('Saving file_{}'.format(i))
with open("file_{}".format(i), 'wb') as f:
f.write(os.urandom(FILE_SIZE))
else:
files = sorted(os.listdir(DIR), key=os.path.getctime)
print('Files list: ', files)
os.remove(files[0])
print('Deleted oldest file: ',files[0])
i = i + 1
print('KONIEC: Cycle no. ', cycle)
print('Deleting the content of the card...')
结果
编辑:我知道删除后的下一个文件的文件名结尾应该比上一个添加的大一个。在这个例子中应该是Saving file_22
而不是Saving file_23
. 第 22 个 'i' 用于删除过程,但我该如何克服这个问题?