import os from pathlib import Path def ift_backup(base_dir=None): if base_dir is None: base_dir = "E:\\IFT" source_path = Path(base_dir) / "prod" target_path = base_dir + "/archive" for source_file in source_path.glob("*"): # print(source_file) file_temp = source_file.name if file_temp.count("_") == 2: prefix, filetype, timestamp = file_temp.split("_") year = timestamp[:4] month = timestamp[4:6] target = Path( f"{target_path}/{year}/{filetype}/{year}-{month}/{source_file.name}" ).absolute() os.makedirs(target.parent, exist_ok=True) if target.exists(): target.unlink() print(target) source_file.rename(target) if __name__ == "__main__": ift_backup()