import os import subprocess from pathlib import Path def link_file(from_file, to_file): subprocess.check_call( f'ln -s "`realpath --relative-to="{os.path.dirname(to_file)}" "{from_file}"`" "{to_file}"', shell=True) def move_file(from_file, to_file): subprocess.check_call(f'mv "{from_file}" "{to_file}"', shell=True) def copy_file(from_file, to_file): subprocess.check_call(f'cp -r "{from_file}" "{to_file}"', shell=True) def safe_path(path): os.makedirs(Path(path).parent, exist_ok=True) return path