import os, datetime from pathlib import Path def folder_path_year_creator(date: datetime.datetime, default_path: str) -> str: return f"{default_path}/{date.year}" def folder_path_month_creator(date: datetime.datetime, default_path: str) -> str: return f"{folder_path_year_creator(date=date, default_path=default_path)}/{date.month}" def file_path_creator(date: datetime.datetime, default_path: str) -> str: return f"{folder_path_month_creator(date=date, default_path=default_path)}/{date.day}.tar.gz" def remove_old_files(today_date: datetime.datetime, keep_days: int, root_path: str): older_date = today_date - datetime.timedelta(days=keep_days) last_date = today_date - datetime.timedelta(days=keep_days) while older_date > older_date - datetime.timedelta(days=10): older_date = older_date - datetime.timedelta(days=1) if last_date.year > older_date.year and Path(folder_path_year_creator(date=older_date, default_path=root_path)).exists(): Path(folder_path_year_creator(date=older_date, default_path=root_path)).rmdir() return elif last_date.month > older_date.month and Path(folder_path_month_creator(date=older_date, default_path=root_path)).exists(): Path(folder_path_month_creator(date=older_date, default_path=root_path)).rmdir() return elif os.path.exists(file_path_creator(date=older_date, default_path=root_path)): os.remove(file_path_creator(date=older_date, default_path=root_path)) last_date = older_date