it-swarm-ko.tech

파이썬에서 중첩 된 디렉토리를 안전하게 만들려면 어떻게해야합니까?

파일을 저장할 디렉토리가 존재하는지 확인하는 가장 우아한 방법은 무엇입니까? 그렇지 않다면 Python을 사용하여 디렉토리를 만드시겠습니까? 여기 제가 시도한 것이 있습니다 :

import os

file_path = "/my/directory/filename.txt"
directory = os.path.dirname(file_path)

try:
    os.stat(directory)
except:
    os.mkdir(directory)       

f = file(filename)

어쨌든, 저는 os.path.exists (감사합니다 kanja, Blair, Douglas)를 놓쳤습니다. 이것은 내가 지금 가지고있는 것입니다 :

def ensure_dir(file_path):
    directory = os.path.dirname(file_path)
    if not os.path.exists(directory):
        os.makedirs(directory)

"open"플래그가있어 자동으로 실행됩니까?

3548
Parand

나는 좋은 특성을 가진 두 가지 대답을 보았습니다. 각각 작은 결함이 있습니다.

os.path.exists 을 시도하고 os.makedirs 을 고려하십시오.

_import os
if not os.path.exists(directory):
    os.makedirs(directory)
_

주석과 다른 곳에서 언급했듯이 경쟁 조건이 있습니다. _os.path.exists_와 _os.makedirs_ 호출 사이에 디렉토리가 생성되면 _os.makedirs_이 OSError과 함께 실패합니다. 불행히도, 담요를 잡는 OSError과 계속되는 것은 권한이 충분하지 않거나 전체 디스크와 같은 다른 요인으로 인해 디렉토리를 만들지 못하는 것을 무시하기 때문에 절대 아닙니다.

한 가지 옵션은 OSError을 포착하고 포함 된 오류 코드를 검사하는 것입니다 ( Python의 OSError에서 정보를 가져 오는 플랫폼 간 방법이 있습니까 ).

_import os, errno

try:
    os.makedirs(directory)
except OSError as e:
    if e.errno != errno.EEXIST:
        raise
_

또는 두 번째 _os.path.exists_이있을 수 있지만 다른 첫 번째 확인 후 디렉터리를 만든 다음 두 번째 디렉터리 전에 디렉터리를 제거했다고 가정하면 여전히 속일 수 있습니다.

응용 프로그램에 따라 동시 작업의 위험은 파일 권한과 같은 다른 요인으로 인한 위험보다 많거나 적을 수 있습니다. 개발자는 구현을 선택하기 전에 개발중인 특정 응용 프로그램과 예상 환경에 대해 더 많이 알아야합니다.

Python의 최신 버전은 FileExistsError (3.3+)을 노출 하여이 코드를 상당히 개선합니다 ...

_try:
    os.makedirs("path/to/directory")
except FileExistsError:
    # directory already exists
    pass
_

... os.makedirs_에 대한 키워드 인수 _exist_ok (3.2 이상)를 허용합니다.

_os.makedirs("path/to/directory", exist_ok=True)  # succeeds even if directory exists.
_
4558
Blair Conrad

Python 3.5 이상 :

import pathlib
pathlib.Path('/my/directory').mkdir(parents=True, exist_ok=True) 

pathlib.Path.mkdir 는 재귀 적으로 디렉토리를 생성하고 디렉토리가 이미 존재하면 예외를 발생시키지 않습니다. 부모를 만들 필요가 없거나 만들려는 경우 parents 인수를 건너 뜁니다.

Python 3.2 이상 :

pathlib 사용 :

가능한 경우 pathlib2 라는 현재 pathlib 백 포트를 설치하십시오. pathlib 라는 이전 유지 관리되지 않은 백 포트를 설치하지 마십시오. 그런 다음 위의 Python 3.5+ 섹션을 참조하여 동일하게 사용하십시오.

Python 3.4를 사용하는 경우 pathlib과 함께 제공 되더라도 유용한 exist_ok 옵션이 누락됩니다. 백 포트는이 누락 된 옵션을 포함하는 mkdir의 새롭고 우수한 구현을 제공하기위한 것입니다.

os 사용 :

import os
os.makedirs(path, exist_ok=True)

os.makedirs 는 재귀 적으로 디렉토리를 생성하고 디렉토리가 이미 존재하면 예외를 발생시키지 않습니다. Python 3.2+를 사용하는 경우에만 선택적 exist_ok 인수가 있으며 기본값은 False입니다. 이 인수는 Python 2.x에서 2.7까지 존재하지 않습니다. 따라서 Python 2.7처럼 수동 예외 처리가 필요하지 않습니다.

Python 2.7 이상 :

pathlib 사용 :

가능한 경우 pathlib2 라는 현재 pathlib 백 포트를 설치하십시오. pathlib 라는 이전 유지 관리되지 않은 백 포트를 설치하지 마십시오. 그런 다음 위의 Python 3.5+ 섹션을 참조하여 동일하게 사용하십시오.

os 사용 :

import os
try: 
    os.makedirs(path)
except OSError:
    if not os.path.isdir(path):
        raise

Naive 솔루션은 os.path.isdir 다음에 os.makedirs 를 먼저 사용할 수 있지만 위의 해결 방법은 두 작업의 순서를 바꿉니다. 이렇게함으로써, 디렉토리를 생성 할 때 중복 된 시도와 관련된 일반적인 경쟁 조건을 방지하고 디렉토리에서 파일의 모호성을 없애줍니다.

예외를 포착하고 errno을 사용하는 것은 파일과 디렉토리 모두에 대해 OSError: [Errno 17] File exists, 즉 errno.EEXIST가 발생하기 때문에 유용하지 않습니다. 디렉토리가 있는지 여부를 확인하기 만하면 더 신뢰할 수 있습니다.

대안 :

mkpath 는 중첩 된 디렉토리를 만들고 디렉토리가 이미 존재하는 경우 아무 작업도 수행하지 않습니다. 이것은 Python 2와 3 모두에서 작동합니다.

import distutils.dir_util
distutils.dir_util.mkpath(path)

Per Bug 10948 ,이 대안의 심각한 제한은 주어진 경로에 대해 파이썬 프로세스 당 한 번만 작동한다는 것입니다. 즉, 디렉토리를 만들 때 파이썬의 내부 또는 외부에서 디렉토리를 삭제 한 다음 mkpath을 다시 사용하여 동일한 디렉토리를 다시 만들면 mkpath은 이전에 디렉토리를 만든 데 대한 잘못된 캐시 된 정보를 자동으로 사용합니다. 실제로 디렉토리를 다시 작성하지는 않습니다. 반대로 os.makedirs는 그러한 캐시에 의존하지 않습니다. 일부 응용 프로그램에서는이 제한이 적용될 수 있습니다.


디렉토리의 모드에 관해서는 해당 문서를 참조하십시오.

1010
A-B-B

Try except와 errno 모듈의 올바른 에러 코드를 사용하면 경쟁 조건을 제거하고 크로스 플랫폼입니다.

import os
import errno

def make_sure_path_exists(path):
    try:
        os.makedirs(path)
    except OSError as exception:
        if exception.errno != errno.EEXIST:
            raise

즉, 우리는 디렉토리를 만들려고하지만 이미 존재한다면 우리는 그 오류를 무시합니다. 반면에 다른 오류가보고됩니다. 예를 들어 dir 'a'를 미리 만들어서 모든 권한을 제거하면 errno.EACCES (Permission denied, error 13)와 함께 OSError이 발생합니다.

589
Heikki Toivonen

개인적으로 os.path.isdir() 대신 os.path.exists()을 사용하는 것이 좋습니다.

>>> os.path.exists('/tmp/dirname')
True
>>> os.path.exists('/tmp/dirname/filename.etc')
True
>>> os.path.isdir('/tmp/dirname/filename.etc')
False
>>> os.path.isdir('/tmp/fakedirname')
False

당신이 가지고 있다면:

>>> dir = raw_input(":: ")

그리고 어리석은 사용자 입력 :

:: /tmp/dirname/filename.etc

... os.makedirs()으로 테스트 할 경우 os.path.exists()에 인수를 전달하면 filename.etc라는 디렉토리로 끝납니다.

92
crimsonstone

os.makedirs : (전체 경로가 있는지 확인하십시오.)
디렉토리가 존재한다는 사실을 처리하려면 OSError. (exist_ok가 False (기본값) 인 경우 대상 디렉토리가 이미 존재하면 OSError가 발생합니다.)

import os
try:
    os.makedirs('./path/to/somewhere')
except OSError:
    pass
66
Douglas Mayle

파이썬 3.5에서 시작, pathlib.Path.mkdirexist_ok 플래그가 있습니다 :

from pathlib import Path
path = Path('/my/directory/filename.txt')
path.parent.mkdir(parents=True, exist_ok=True) 
# path.parent ~ os.path.dirname(path)

이 재귀 적으로 디렉터리를 만들고 디렉터리가 이미 있으면 예외를 발생시키지 않습니다.

(그냥 os.makedirs 파이썬 3.2부터 시작하는 exist_ok 플래그가 있습니다. 예를 들어 os.makedirs(path, exist_ok=True))

47
hiro protagonist

이 상황에 대한 통찰력

특정 경로에서 특정 파일을 지정하고 파일 경로에서 디렉토리를 가져옵니다. 그런 다음 디렉토리가 있는지 확인한 후 파일을 열어 읽으려고합니다. 이 코드에 대한 의견 :

filename = "/my/directory/filename.txt"
dir = os.path.dirname(filename)

우리는 내장 함수 인 dir을 덮어 쓰지 않기를 원합니다. 또한 filepath 또는 아마도 fullfilepath은 아마도 filename보다 나은 의미 론적 이름 일 것이므로 더 잘 작성 될 것입니다.

import os
filepath = '/my/directory/filename.txt'
directory = os.path.dirname(filepath)

최종 목표는 작성을 위해이 파일을 열어서 작성하는 것이지만 기본적으로이 목표 (코드에 기반 함)에 접근하고 있습니다. 이렇게하면 reading 에 대한 파일이 열립니다.

if not os.path.exists(directory):
    os.makedirs(directory)
f = file(filename)

독서를위한 여는 가정

왜 거기에 있고 읽을 수있을 것으로 예상되는 파일을위한 디렉토리를 만들겠습니까? 

파일을 열려고 시도하십시오.

with open(filepath) as my_file:
    do_stuff(my_file)

디렉토리 나 파일이 없으면 연관된 오류 번호와 함께 IOError을 얻습니다. errno.ENOENT는 플랫폼에 관계없이 올바른 오류 번호를 가리 킵니다. 원한다면 잡을 수 있습니다. 예를 들면 다음과 같습니다.

import errno
try:
    with open(filepath) as my_file:
        do_stuff(my_file)
except IOError as error:
    if error.errno == errno.ENOENT:
        print 'ignoring error because directory or file is not there'
    else:
        raise

우리가 글쓰기를 위해 문을 여는 것으로 가정합니다.

이것은 아마도 당신이 원하는 것입니다.

이 경우 경쟁 조건에 직면하지 않았을 가능성이 큽니다. 그렇게하기 만하면되지만, 작성을 위해서는 w 모드 (또는 a를 추가)로 열어야합니다. 또한 파일을 여는 데 컨텍스트 관리자를 사용하는 것이 파이썬 권장 사항입니다.

import os
if not os.path.exists(directory):
    os.makedirs(directory)
with open(filepath, 'w') as my_file:
    do_stuff(my_file)

그러나 모든 데이터를 동일한 디렉토리에 넣으려고하는 여러 파이썬 프로세스가 있다고 가정 해보십시오. 그런 다음 디렉토리 생성에 대한 논쟁이있을 수 있습니다. 이 경우에는 try-except 블록에서 makedirs 호출을 래핑하는 것이 가장 좋습니다.

import os
import errno
if not os.path.exists(directory):
    try:
        os.makedirs(directory)
    except OSError as error:
        if error.errno != errno.EEXIST:
            raise
with open(filepath, 'w') as my_file:
    do_stuff(my_file)
36
Aaron Hall

os.path.exists 기능을 사용해보십시오.

if not os.path.exists(dir):
    os.mkdir(dir)
30
gone

나는 다음과 같은 것을 내려 놓았다. 그래도 완전히 바보가 아닙니다.

import os

dirname = 'create/me'

try:
    os.makedirs(dirname)
except OSError:
    if os.path.exists(dirname):
        # We are nearly safe
        pass
    else:
        # There was an error on creation, so make sure we know about it
        raise

이제 내가 말했듯이, 이것은 디렉토리를 만드는 데 실패 할 가능성이 있고, 그 기간에 디렉토리를 생성 할 수있는 가능성이 있기 때문에 절대적으로 안전하지 않습니다.

27
Ali Afshar

디렉토리가 있는지 확인하고 필요한 경우 디렉토리를 만드시겠습니까?

이에 대한 직접적인 대답은 다른 사용자 나 프로세스가 디렉토리를 망칠 수 있다고 생각하지 않는 간단한 상황을 전제로합니다.

if not os.path.exists(d):
    os.makedirs(d)

또는 디렉토리를 경쟁 조건의 대상으로하는 경우 (즉 경로가 존재하는지 확인한 후 다른 경로가 이미 그것을 만들었을 경우)

import errno
try:
    os.makedirs(d)
except OSError as exception:
    if exception.errno != errno.EEXIST:
        raise

그러나 더 나은 접근법은 tempfile 을 통해 임시 디렉토리를 사용하여 자원 경합 문제를 피하는 것입니다.

import tempfile

d = tempfile.mkdtemp()

온라인 문서의 필수 사항은 다음과 같습니다.

mkdtemp(suffix='', prefix='tmp', dir=None)
    User-callable function to create and return a unique temporary
    directory.  The return value is the pathname of the directory.

    The directory is readable, writable, and searchable only by the
    creating user.

    Caller is responsible for deleting the directory when done with it.

파이썬 3.5의 새로운 기능 : pathlib.Pathexist_ok

새로운 Path 객체 (3.4 버전)가 있습니다.이 객체 중 하나는 mkdir입니다.

(컨텍스트에 대해 스크립트로 내 주간 담당자를 추적하고 있습니다. 스크립트의 관련 코드 부분에서 동일한 데이터에 대해 하루에 두 번 이상의 스택 오버플로가 발생하지 않도록 할 수 있습니다.)

먼저 해당 수입품 :

from pathlib import Path
import tempfile

os.path.join를 처리 할 필요가 없습니다. /가있는 경로 부분을 조인하면됩니다.

directory = Path(tempfile.gettempdir()) / 'sodata'

그런 다음 디렉토리가 존재하는지 확인합니다. exist_ok 인자는 파이썬 3.5에 나타납니다.

directory.mkdir(exist_ok=True)

다음은 documentation 의 관련 부분입니다.

exist_ok가 true이면 마지막 경로 구성 요소가 기존의 비 디렉토리 파일이 아닌 경우에만 FileExistsError 예외가 무시됩니다 (POSIX mkdir -p 명령과 동일).

여기 스크립트를 조금 더 추가했습니다. 제 경우에는 경쟁 조건에 따르지 않습니다. 디렉토리 (또는 포함 된 파일)가있을 것으로 예상하는 프로세스가 하나뿐입니다. 제거하려고하는 작업이 하나도 없습니다. 디렉토리. 

todays_file = directory / str(datetime.datetime.utcnow().date())
if todays_file.exists():
    logger.info("todays_file exists: " + str(todays_file))
    df = pd.read_json(str(todays_file))

Path 객체는 str으로 강제 변환되어야 str 경로에서 사용할 수 있습니다.

아마도 팬더는 추상 기본 클래스 인 os.PathLike의 인스턴스를 허용하도록 업데이트해야합니다.

20
Aaron Hall

파이썬 3.4에서는 브랜드의 새로운 pathlib 모듈을 사용할 수도 있습니다 :

from pathlib import Path
path = Path("/my/directory/filename.txt")
try:
    if not path.parent.exists():
        path.parent.mkdir(parents=True)
except OSError:
    # handle error; you can also catch specific errors like
    # FileExistsError and so on.
17
Antti Haapala

관련 Python 문서EAFP 코딩 스타일 (허가보다 용서를 구하는 것이 쉬워 } _ _을 사용하도록 제안합니다. 이것은 코드가

try:
    os.makedirs(path)
except OSError as exception:
    if exception.errno != errno.EEXIST:
        raise
    else:
        print "\nBE CAREFUL! Directory %s already exists." % path

대안보다 낫다.

if not os.path.exists(path):
    os.makedirs(path)
else:
    print "\nBE CAREFUL! Directory %s already exists." % path

문서는이 질문에서 논의 된 경쟁 조건으로 인해이를 정확하게 제시합니다. 또한 다른 사람들이 여기 언급 한 것처럼 OS의 두 배 대신 한 번 쿼리하는 것이 성능상 이점이 있습니다. 마지막으로, 개발자가 응용 프로그램이 실행되는 환경을 알고있을 때 - 프로그램이 개인 환경을 설정 한 특수한 경우에만 옹호 될 수있는 경우도 있습니다. 자체 (및 동일한 프로그램의 다른 인스턴스).

이 경우에도 이것은 나쁜 관행이며 오래 쓸모없는 디버깅으로 이어질 수 있습니다. 예를 들어, 디렉토리에 대한 사용 권한을 설정하면 노출 권한이 우리의 목적에 맞게 적절하게 설정되어 있어야합니다. 상위 디렉토리는 다른 권한으로 마운트 될 수 있습니다. 일반적으로 프로그램은 항상 올바르게 작동해야하며 프로그래머는 특정 환경을 기대해서는 안됩니다.

12
kavadias

Python3 , os.makedirsexist_ok 설정을 지원합니다. 기본 설정은 False입니다. 즉, 대상 디렉토리가 이미 존재하면 OSError이 발생합니다. exist_okTrue로 설정하면 OSError (디렉토리가 있음)이 무시되고 디렉토리가 생성되지 않습니다.

os.makedirs(path,exist_ok=True)

Python2 , os.makedirsexist_ok 설정을 지원하지 않습니다. heikki-toivonen의 답변 에서 접근 방식을 사용할 수 있습니다.

import os
import errno

def make_sure_path_exists(path):
    try:
        os.makedirs(path)
    except OSError as exception:
        if exception.errno != errno.EEXIST:
            raise
8
euccas

mkpath 를 사용할 수 있습니다.

# Create a directory and any missing ancestor directories. 
# If the directory already exists, do nothing.

from distutils.dir_util import mkpath
mkpath("test")    

조상 디렉토리도 생성합니다. 

그것은 파이썬 2와 3에서 작동합니다.

8
Dennis Golomazov

os.path.exists(), here 는 Python 3 스크립트로 디렉토리가 존재하는지 확인하고, 존재하지 않으면 생성하고 존재한다면 삭제합니다 (원할 경우).

사용자에게 디렉토리 입력을 요구하고 쉽게 수정할 수 있습니다.

7
Michael Strobel

한 줄짜리 솔루션의 경우 IPython.utils.path.ensure_dir_exists()을 사용할 수 있습니다.

from IPython.utils.path import ensure_dir_exists
ensure_dir_exists(dir)

설명서에서 : 디렉토리가 존재하는지 확인하십시오. 존재하지 않는 경우 다른 프로세스가 동일한 작업을 수행하는 경우 해당 프로세스를 만들어 경쟁 조건으로부터 보호하십시오.

7
tashuhka

Heikki ToivonenA-B-B 의 답변을보고이 변형에 대해 생각했습니다.

import os
import errno

def make_sure_path_exists(path):
    try:
        os.makedirs(path)
    except OSError as exception:
        if exception.errno != errno.EEXIST or not os.path.isdir(path):
            raise
6
alissonmuller

파일 I/O로 작업 할 때 고려해야 할 중요한 사항은

TOCTTOU (사용 시간 확인 시간)

따라서 if을 사용하여 검사 한 다음 나중에 읽거나 쓰면 처리되지 않은 I/O 예외가 발생할 수 있습니다. 가장 좋은 방법은 다음과 같습니다.

try:
    os.makedirs(dir_path)
except OSError as e:
    if e.errno != errno.EEXIS:
        raise
6
SHAHS

이것을 위해 os.listdir를 사용할 수 있습니다 :

import os
if 'dirName' in os.listdir('parentFolderPath')
    print('Directory Exists')
6
iPhynx

나는이 Q/A를 발견했고 나는 처음에 내가 겪었던 실패와 오류 중 일부에 의아해했다. 파이썬 3 (아치 리눅스 x86_64 시스템에서 아나콘다 가상 환경 v.3.5)에서 일하고 있습니다.

다음 디렉토리 구조를 고려하십시오.

└── output/         ## dir
   ├── corpus       ## file
   ├── corpus2/     ## dir
   └── subdir/      ## dir

여기에 내 실험/메모가 있습니다.

# ----------------------------------------------------------------------------
# [1] https://stackoverflow.com/questions/273192/how-can-i-create-a-directory-if-it-does-not-exist

import pathlib

""" Notes:
        1.  Include a trailing slash at the end of the directory path
            ("Method 1," below).
        2.  If a subdirectory in your intended path matches an existing file
            with same name, you will get the following error:
            "NotADirectoryError: [Errno 20] Not a directory:" ...
"""
# Uncomment and try each of these "out_dir" paths, singly:

# ----------------------------------------------------------------------------
# METHOD 1:
# Re-running does not overwrite existing directories and files; no errors.

# out_dir = 'output/corpus3'                ## no error but no dir created (missing tailing /)
# out_dir = 'output/corpus3/'               ## works
# out_dir = 'output/corpus3/doc1'           ## no error but no dir created (missing tailing /)
# out_dir = 'output/corpus3/doc1/'          ## works
# out_dir = 'output/corpus3/doc1/doc.txt'   ## no error but no file created (os.makedirs creates dir, not files!  ;-)
# out_dir = 'output/corpus2/tfidf/'         ## fails with "Errno 20" (existing file named "corpus2")
# out_dir = 'output/corpus3/tfidf/'         ## works
# out_dir = 'output/corpus3/a/b/c/d/'       ## works

# [2] https://docs.python.org/3/library/os.html#os.makedirs

# Uncomment these to run "Method 1":

#directory = os.path.dirname(out_dir)
#os.makedirs(directory, mode=0o777, exist_ok=True)

# ----------------------------------------------------------------------------
# METHOD 2:
# Re-running does not overwrite existing directories and files; no errors.

# out_dir = 'output/corpus3'                ## works
# out_dir = 'output/corpus3/'               ## works
# out_dir = 'output/corpus3/doc1'           ## works
# out_dir = 'output/corpus3/doc1/'          ## works
# out_dir = 'output/corpus3/doc1/doc.txt'   ## no error but creates a .../doc.txt./ dir
# out_dir = 'output/corpus2/tfidf/'         ## fails with "Errno 20" (existing file named "corpus2")
# out_dir = 'output/corpus3/tfidf/'         ## works
# out_dir = 'output/corpus3/a/b/c/d/'       ## works

# Uncomment these to run "Method 2":

#import os, errno
#try:
#       os.makedirs(out_dir)
#except OSError as e:
#       if e.errno != errno.EEXIST:
#               raise
# ----------------------------------------------------------------------------

결론 : 제 의견으로는 "방법 2"가 더 강력합니다.

[1] 디렉토리가 없으면 어떻게 만들 수 있습니까?

[2] https://docs.python.org/3/library/os.html#os.makedirs

6
Victoria Stuart

다음 사항을 고려한 경우 : 

os.path.isdir('/tmp/dirname')

디렉토리 (경로)가 존재하고 디렉토리임을 의미합니다. 그래서 나에게 이런 식으로 내가 필요한 것을 해낸다. 따라서 폴더인지 (파일이 아닌지) 존재하는지 확인할 수 있습니다.

3
Ralph Schwerdt

Pathlib 라이브러리 사용

import pathlib
mypath="/my/directory"
pathlib.Path(mypath).mkdir(parents=True, exist_ok=True) 
2

프로그램/프로젝트의 진입 점에서 create_dir() 함수를 호출하십시오.

import os

def create_dir(directory):
    if not os.path.exists(directory):
        print('Creating Directory '+directory)
        os.makedirs(directory)

create_dir('Project directory')
2

이 명령 검사를 사용하여 dir을 만듭니다.

 if not os.path.isdir(test_img_dir):
     os.mkdir(str("./"+test_img_dir))
1

디렉토리를 만들기 전에 전체 경로를 설정해야합니다.

import os,sys,inspect
import pathlib

currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
your_folder = currentdir + "/" + "your_folder"

if not os.path.exists(your_folder):
   pathlib.Path(your_folder).mkdir(parents=True, exist_ok=True)

이것은 나를 위해 작동하고 잘하면, 그것은 당신을 위해 잘 작동합니다

0
Hussam Kurd
import os
if os.path.isfile(filename):
    print "file exists"
else:
    "Your code here"

여기서 코드는 (touch) 명령을 사용하는 곳입니다.

이것은 파일이 존재하지 않는 경우 거기에 있는지 확인하여 생성하지 않습니다.

0
Evil Exists

셸 언어를 지원하는 컴퓨터에서 실행중인 경우 하위 프로세스 모듈을 사용하지 않는 이유는 무엇입니까? Python 2.7 및 Python 3.6에서 작동합니다.

from subprocess import call
call(['mkdir', '-p', 'path1/path2/path3'])

대부분의 시스템에서 트릭을해야합니다.

0
Geoff Paul Bremner