`mkdir -p`구현하기


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

  • 2016년 01월 11일에 작성됨

조회수 297


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를 보시려면 다음 링크를 클릭하세요

  • 2016년 01월 11일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close