Будем удалять файлы из директории, если их больше определенного количества.
Функции будут полезны при создании скриншотов на python.
Функция сбора файлов в папке
def get_files(path):
files = []
directory = os.listdir(path)
directory.sort(reverse=True)
for file in directory:
if file.endswith('.jpg'):
files.append(file)
return files
files = []
directory = os.listdir(path)
directory.sort(reverse=True)
for file in directory:
if file.endswith('.jpg'):
files.append(file)
return files
Будем считать, что наши файлы были сохранены через timestamp. Пример есть в статье оптимизация скриншотов на python. Это нужно для их правильной сортировки.
Функция удаления старых файлов
Мы будем удалять файлы, если их будет становится больше 30 штук. Старые будут удаляться в первую очередь.
def remove_old_files(path, files):
""" Оставляет последние 30 файлов, остальные удаляет """
max_files = 30
if len(files) < max_files:
return
i = 0
for f in files:
i += 1
if i > max_files:
os.remove(os.path.join(path, f))
""" Оставляет последние 30 файлов, остальные удаляет """
max_files = 30
if len(files) < max_files:
return
i = 0
for f in files:
i += 1
if i > max_files:
os.remove(os.path.join(path, f))
Использование
path = 'public/build/screenshots'
files = get_files(path)
remove_old_files(path, files)
files = get_files(path)
remove_old_files(path, files)