import os import datetime def fmt_datetime_suffix(dt: datetime.datetime = None): return (dt or datetime.datetime.now()).strftime("%Y-%m%d-%H%M") def append_datetime_suffix(path, dt: datetime.datetime = None): return f'{path}_{fmt_datetime_suffix(dt)}' def get_unique_path( path: str, max_tries: int = 100): if path is None or len(path) == 0: raise ValueError("'path' is none or empty") if not os.path.exists(path): return path max_tries = 100 i = 1 orig_path = path while i < max_tries: path = f'{orig_path}({i})' if not os.path.exists(path): break i += 1 if i == max_tries: raise ValueError( f"Unable to make path unique by appending appending an incrementing integer. " f"Maximum attempts exceeded ({max_tries})") return path