[Python 일반] 파이썬에서 재귀적으로 깊은 계층적 디렉토리를 생성하기 위한 makedirs

존재하지 않는 디렉토리에 os.mkdir()을 사용하여 새 디렉토리를 생성할 때 오류가 발생했습니다.

os.mkdir()파이썬에서 디렉토리(폴더)를 생성할 때 사용하는 방법입니다. 존재하지 않는 디렉토리에 새 디렉토리를 생성하려고 하면 오류가 발생합니다.(FileNotFoundError)

import os

os.mkdir('not_exist_dir/new_dir')
# FileNotFoundError

os.madeirs()를 사용하여 재귀적으로 디렉토리 생성

os.mkdir() 대신 os.makedirs()를 사용하면 중간 디렉토리가 생성되므로 깊은 계층적 디렉토리를 재귀적으로 생성할 수 있습니다.

os.makedirs('not_exist_dir/new_dir')

이 예의 경우 모든 항목을 한 번에 생성합니다. 새 중간 디렉토리가 여러 개 있어도 괜찮습니다.

  • 중간 디렉토리:not_exist_dir
  • 최종 디렉토리:new_dir

단, 최종 디렉터리가 이미 존재하는 경우 오류가 발생합니다.(FileExistsError)

os.makedirs('exist_dir/exist_dir')
# FileExistsError

인수가 있는 경우 exist_ok

Python 3.2 이후에는 exist_ok 인수가 추가되었으며, exist_ok=True이면 끝 디렉터리가 이미 존재하더라도 오류가 발생하지 않습니다. 최종 디렉터리가 없으면 새 디렉터리가 생성되고 존재하면 아무 작업도 수행되지 않습니다. 미리 터미널 디렉토리의 존재를 확인할 필요가 없기 때문에 편리합니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

os.makedirs('exist_dir/exist_dir', exist_ok=True)

exist_ok 인수가 누락된 경우

이전 버전의 Python이 있고 os.madeirs에 exist_ok 인수가 없는 경우 os.path.exists를 사용하여 끝 디렉터리가 있는지 여부를 확인한 다음 없는 경우에만 새 디렉터리를 만들 수 있습니다. 끝 디렉토리.

if not os.path.exists('exist_dir/exist_dir'):
    os.makedirs('exist_dir/exist_dir')

 

[출처] https://ko.from-locals.com/python-makedirs-exist-ok/

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
491 [python, C++] Interfacing C++ and Python with the Python API : C++ 및 Python과 Python API의 인터페이스 file 졸리운_곰 2023.08.18 29
490 [python 일반] 파이참 에러 : Fatal Python error: init_stdio_encoding: failed to get the Python codec name of the stdio encoding file 졸리운_곰 2023.07.06 15
489 (Python) Jupyter Notebook 내에서만 환경 변수 설정 방법 졸리운_곰 2023.07.06 14
488 [python] 인공지능 python : 한글 문서 자동 요약 - lexrank 졸리운_곰 2023.07.06 15
487 [Python] 문자열에서 파일명 또는 폴더명으로 시스템상 지원되는 글자를 제외하고 삭제하기 졸리운_곰 2023.06.04 24
486 [python 일반] 파이썬 win32com 사용시 에러 해결 file 졸리운_곰 2023.06.04 119
485 [python 일반] win32com.gen_py 라이브러리의 오류 해결 졸리운_곰 2023.06.03 26
484 [Python 일반] 파일(폴더) 이름에 사용할 수 없는 특수 문자 제거 졸리운_곰 2023.06.03 24
» [Python 일반] 파이썬에서 재귀적으로 깊은 계층적 디렉토리를 생성하기 위한 makedirs 졸리운_곰 2023.06.03 24
482 [python] 인공지능 katiehouse / django-scikit-learn-tutorial file 졸리운_곰 2023.06.03 34
481 [python][자료구조] Python - MySQL 데이터 추가, 삭제, 업데이트 졸리운_곰 2023.05.13 27
480 [Python 인터넷] 네이버 뉴스 기사 크롤링 졸리운_곰 2023.05.13 35
479 [Django][Django restframework] Django REST framework 시작하기 file 졸리운_곰 2023.05.07 7
478 [Django] REST API 로그인 서버 만들기 (2) - DB 연동, 테스트 file 졸리운_곰 2023.05.07 14
477 [Django] REST API 로그인 서버 만들기 (1) - 코드 졸리운_곰 2023.05.07 21
476 [Django] user의 ip address 가지고 오기 졸리운_곰 2023.05.07 13
475 [Django] [Python_Django] You are trying to add a non-nullable field '필드명' to post without a default 해결 졸리운_곰 2023.05.07 19
474 [Django] [Python_Django] 관리자 계정에서 테이블 관리하기 file 졸리운_곰 2023.05.06 8
473 [python][자료구조] Python의 JSON - 문자열을 JSON으로 변환하는 방법 졸리운_곰 2023.05.06 25
472 [Django] TIP - 장고 데이터베이스 여러개 사용하기 (Django multidatabase) file 졸리운_곰 2023.05.05 11
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED