Как удалять старые файлы на python

Admin Python

Будем удалять файлы из директории, если их больше определенного количества.

Функции будут полезны при создании скриншотов на 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

Будем считать, что наши файлы были сохранены через 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))

Использование

path = 'public/build/screenshots'
files = get_files(path)
remove_old_files(path, files)

Кстати, на сайте нет рекламы. У сайта нет цели самоокупаться, но если вам пригодилась информация можете задонатить мне на чашечку кофе в макдаке. Лайкнуть страницу или просто поблагодарить. Карма вам зачтется.

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"Как удалять старые файлы на python"