본문 바로가기
Development/Python

Python에서 directory 관련 명령어

by 곽동현 이스텔리앙 2020. 2. 19.

cp --parents 명령어 구현하기

def make_safe_dir(dir):
if not os.path.exists(dir):
os.makedirs(dir)


def remove_safe_dir(dir):
if os.path.isfile(dir) or os.path.exists(dir):
shutil.rmtree(dir)


def cp_parents(cwd, full_file_path, tmpdir):
dir_diff = full_file_path.replace(cwd, "").split("/")[1:-1]
file_name = full_file_path.split("/")[-1]
target_dir = ""
if len(dir_diff):
target_dir = os.path.join(*dir_diff)
make_safe_dir(os.path.join(tmpdir, target_dir))
shutil.copy(full_file_path, os.path.join(tmpdir, target_dir, file_name))


with tempfile.TemporaryDirectory() as tmpdir:
tmpdir = "../tmp_test"
make_safe_dir(tmpdir)
# Copy necessary deps
cwd = os.getcwd()
for file_wild_card in files:
for full_file_path in glob.glob(os.path.join(cwd, file_wild_card)):
cp_parents(cwd, full_file_path, tmpdir)


아래의 이슈를 보면, cp --parents를 구현하려는 시도들이 많이 있다. 위 코드는 내 나름대로 쉬운 방식으로 구현한 코드이다.

https://stackoverflow.com/questions/15329223/copy-a-file-into-a-directory-with-its-original-leading-directories-appended


'Development > Python' 카테고리의 다른 글

Python 설치 및 삭제하기  (0) 2020.02.27
Python subprocess와 Multi-process  (0) 2020.02.20
Python에서 directory 관련 명령어  (0) 2020.02.19
Python 코드 안에서 git과 pip 사용하기  (0) 2020.02.19
Advanced Python Scheduler  (0) 2020.02.18
Airflow  (0) 2020.02.11

댓글0