반응형
파일 출력으로 디렉토리 자동 생성
가능한 중복 :
파이썬에서 mkdir -p 기능
파일을 만들고 싶다고 가정 해보십시오.
filename = "/foo/bar/baz.txt"
with open(filename, "w") as f:
f.write("FOOBAR")
존재하지 않기 IOError
때문에 이것은을 제공 /foo/bar
합니다.
해당 디렉토리를 자동으로 생성하는 가장 파이썬적인 방법은 무엇입니까? 명시 적으로 호출 os.path.exists
하고 os.mkdir
모든 단일 항목 (예 : / foo, 그런 다음 / foo / bar)이 필요합니까?
os.makedirs
기능은이 작업을 수행합니다. 다음을 시도하십시오 :
import os
import errno
filename = "/foo/bar/baz.txt"
if not os.path.exists(os.path.dirname(filename)):
try:
os.makedirs(os.path.dirname(filename))
except OSError as exc: # Guard against race condition
if exc.errno != errno.EEXIST:
raise
with open(filename, "w") as f:
f.write("FOOBAR")
try-except
블록 을 추가하는 이유 는 디렉토리가 호출 os.path.exists
과 os.makedirs
호출 사이에 작성된 경우를 처리하여 경쟁 조건으로부터 우리를 보호하기 위해서입니다.
Python 3.2 이상에서는 위의 경쟁 조건을 피하는 보다 우아한 방법 이 있습니다.
filename = "/foo/bar/baz.txt"¨
os.makedirs(os.path.dirname(filename), exist_ok=True)
with open(filename, "w") as f:
f.write("FOOBAR")
참고 URL : https://stackoverflow.com/questions/12517451/automatically-creating-directories-with-file-output
반응형
'development' 카테고리의 다른 글
Mac OS X 10.8 / Xcode 4.4에서 gcc 사용 / 설치 방법 (0) | 2020.03.17 |
---|---|
문자열 데이터에 putExtra () 및 getExtra ()를 사용하는 방법 (0) | 2020.03.17 |
미적으로 유쾌한 색상 팔레트를 임의로 생성하는 알고리즘 (0) | 2020.03.17 |
Android“…”를 줄임표 문자로 바꿉니다. (0) | 2020.03.17 |
mysql 테이블의 열 크기를 어떻게 수정합니까? (0) | 2020.03.17 |