import os import shutil def cp_ckpt(remote_dir="data_wd/youtube_vos_jobs/result", curr_dir="backup"): exps = os.listdir(curr_dir) for exp in exps: print("Exp: ", exp) exp_dir = os.path.join(curr_dir, exp) stages = os.listdir(exp_dir) for stage in stages: print("Stage: ", stage) stage_dir = os.path.join(exp_dir, stage) finals = ["ema_ckpt", "ckpt"] for final in finals: print("Final: ", final) final_dir = os.path.join(stage_dir, final) ckpts = os.listdir(final_dir) for ckpt in ckpts: if '.pth' not in ckpt: continue curr_ckpt_path = os.path.join(final_dir, ckpt) remote_ckpt_path = os.path.join(remote_dir, exp, stage, final, ckpt) if os.path.exists(remote_ckpt_path): os.system('rm {}'.format(remote_ckpt_path)) try: shutil.copy(curr_ckpt_path, remote_ckpt_path) print(ckpt, ': OK') except OSError as Inst: print(Inst) print(ckpt, ': Fail') if __name__ == "__main__": cp_ckpt()