`mkdir -p`구현하기

조회수 6297회

쉘에서 mkdir -p하는 것과 같은 기능을 만들어야 합니다. system call 말고 다른 방법으로 만들 수 있을까요요? 20줄 내외 정도로 짧은 코드였으면 합니다.

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    파이썬 버전에 따라서 코드가 다릅니다.

    파이썬 2.5이상

    import os, errno
    
    def mkdir_p(path):
        try:
            os.makedirs(path)
        except OSError as exc: #Python > 2.5
            if exc.errno == errno.EEXIST and os.path.isdir(path):
                pass
            else : raise
    

    파이썬 3.2이상

    파이썬 3.2 이상에서는 os.makedirs의 3번째 인자 exist_ok가 추가되었습니다. exist_ok = True인 경우 mkdir -p 와 같은 기능을 합니다. 단, 기존 디렉토리에 mode로 접근이 불가능한 경우에는 OSError가 발생합니다.

    import os, errno
    
    def mkdir_p(path):
        try:
            os.makedirs(path, exist_ok=True) #python >= 3.2
        except OSError as exc: #Python > 2.5
            raise #기존 디렉토리에 접근이 불가능 한 경우
    

    파이썬 버전에 따른 document를 보시려면 다음 링크를 클릭하세요

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)