Как удалить файлы из директории, которые существуют больше 3х дней?

Как удалить те файлы из директории, которые существуют больше 3х дней

Решение должно работать на Windows10 и на Linux


Ответы (1 шт):

Автор решения: MaxU

Воспользуйтесь кроссплатформенным модулем pathlib:

from pathlib import Path
from datetime import datetime as DT

def del_old_files(path, min_days=3, recursive=False, verbose=0):
    p = Path(path)
    glob_pattern = "**/*" if recursive else "*"
    for f in p.glob(glob_pattern):
        if (f.is_file()
            and
            (DT.now() - DT.fromtimestamp(f.stat().st_mtime)).days >= min_days):
            if verbose > 0:
                print(f"deleting: [{str(f)}]")
            f.unlink()

Тест:

In [36]: del_old_files(r"C:\temp", min_days=2, verbose=1)
deleting: [C:\temp\top_1.5K_ALS_embeddings_clustered.html]
deleting: [C:\temp\top_als_embeddings.pkl]

PS данное решение проверяет дату модификации файла. Если вам надо проверять дату создания, то замените f.stat().st_mtime на f.stat().st_ctime

→ Ссылка