관리 메뉴

개발자비행일지

파이썬 디렉토리 생성, 경로를 포함한 폴더생성, 경로생성 본문

▶ Python

파이썬 디렉토리 생성, 경로를 포함한 폴더생성, 경로생성

Cyber0946 2020. 7. 30. 19:04

파이썬을 이용해 리눅스의 mkdir -p 처럼 부모가 된는 경로를 포함해서 폴더를 생성하는 방법에 대해 알아보자. 

이때 os.mkdir()과 os.path.isdir() , os.path.dirname() 3가지 함수를 활용한다. 

코드는 아래와 같다. 

import os
def mkdir_p(directory):
    """Like mkdir -p ."""
    if not directory:
        return
    if directory.endswith("/"):
        mkdir_p(directory[:-1])
        return
    if os.path.isdir(directory):
        return
    print(os.path.dirname(directory))

    mkdir_p(os.path.dirname(directory))
    #os.path.dirname(directory)를 하면 상위 폴더 경로로 올라감
    print("Start")
    print(directory)
    os.mkdir(directory)

코드의 동작은 다음과 같이 진행되는데, 먼저 예를 들어서 mkdir_p("1111/111/11/1")이 명령으로 주어졌다고 하면, 먼저

매개변수로 받아온 경로를 os.path.dirname()을 통해서 상위 경로를 계속 반환하고 최종적으로 공백을 반환하게 되면, 

가장 상위의 경로인 1111 부터 os.mkdir()을 수행해서 만들고 그 다음 1111/111을 만들고 그 다음 1111/111/11 마지막으로 1111/111/11/1 이 된다.