Python의 os
모듈에는 다음과 같은 디렉토리가 있는지 찾는 방법이 있습니다.
>>> os.direxists(os.path.join(os.getcwd()), 'new_folder')) # in pseudocode True/False
질문자 :David542
Python의 os
모듈에는 다음과 같은 디렉토리가 있는지 찾는 방법이 있습니다.
>>> os.direxists(os.path.join(os.getcwd()), 'new_folder')) # in pseudocode True/False
당신이 찾고있는 os.path.isdir
, 또는 os.path.exists
당신이 파일이나 디렉토리인지 상관하지 않는 경우 :
>>> import os >>> os.path.isdir('new_folder') True >>> os.path.exists(os.path.join(os.getcwd(), 'new_folder', 'file.txt')) False
pathlib
를 사용할 수 있습니다.
>>> from pathlib import Path >>> Path('new_folder').is_dir() True >>> (Path.cwd() / 'new_folder' / 'file.txt').exists() False
Python 3.4는 파일 시스템 경로를 처리하기 위한 객체 지향 접근 방식을 제공하는 표준 라이브러리에 pathlib
모듈을 도입했습니다. is_dir()
와 exists()
(A)의 방법 Path
개체 질문에 대답 할 수 있습니다 :
In [1]: from pathlib import Path In [2]: p = Path('/usr') In [3]: p.exists() Out[3]: True In [4]: p.is_dir() Out[4]: True
경로(및 문자열)는 /
연산자와 함께 결합될 수 있습니다.
In [5]: q = p / 'bin' / 'vim' In [6]: q Out[6]: PosixPath('/usr/bin/vim') In [7]: q.exists() Out[7]: True In [8]: q.is_dir() Out[8]: False
Pathlib는 PyPi의 pathlib2 모듈을 통해 Python 2.7에서도 사용할 수 있습니다.
너무 가까이! os.path.isdir
은 현재 존재하는 디렉토리의 이름을 전달하면 True
존재하지 않거나 디렉토리가 아닌 경우 False
반환합니다.
예, os.path.exists()
.
2개의 내장 함수로 확인할 수 있습니다.
os.path.isdir("directory")
지정된 디렉토리를 사용할 수 있다는 사실을 부울 값으로 제공합니다.
os.path.exists("directoryorfile")
지정된 디렉토리 또는 파일을 사용할 수 있는 경우 bolead true를 제공합니다.
경로가 디렉토리인지 확인하려면;
os.path.isdir("directorypath")
경로가 디렉토리이면 boolean true를 제공합니다.
예 사용 os.path.isdir(경로)
에서와 같이:
In [3]: os.path.exists('/d/temp') Out[3]: True
아마 확실하게 하기 위해 os.path.isdir(...)
에 던지십시오.
os.stat
버전(python 2)을 제공하기 위해:
import os, stat, errno def CheckIsDir(directory): try: return stat.S_ISDIR(os.stat(directory).st_mode) except OSError, e: if e.errno == errno.ENOENT: return False raise
os는 다음과 같은 많은 기능을 제공합니다.
import os os.path.isdir(dir_in) #True/False: check if this is a directory os.listdir(dir_in) #gets you a list of all files and directories under dir_in
입력 경로가 유효하지 않으면 listdir에서 예외가 발생합니다.
소스 , SO에 여전히 있는 경우.
==================================================== ====================
Python ≥ 3.5에서는 pathlib.Path.mkdir
사용합니다.
from pathlib import Path Path("/my/directory").mkdir(parents=True, exist_ok=True)
이전 버전의 Python의 경우 각각 작은 결함이 있는 좋은 품질의 두 가지 답변이 있으므로 이에 대한 답변을 드리겠습니다.
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
가 있을 수 있지만 첫 번째 확인 후에 다른 사람이 디렉터리를 생성한 다음 두 번째 확인 전에 디렉터리를 제거했다고 가정합니다. 여전히 속일 수 있습니다.
응용 프로그램에 따라 동시 작업의 위험은 파일 권한과 같은 다른 요인으로 인한 위험보다 많거나 적을 수 있습니다. 개발자는 구현을 선택하기 전에 개발 중인 특정 응용 프로그램과 예상 환경에 대해 더 많이 알아야 합니다.
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.
#You can also check it get help for you if not os.path.isdir('mydir'): print('new directry has been created') os.system('mkdir mydir')
편리한 Unipath
모듈이 있습니다.
>>> from unipath import Path >>> >>> Path('/var/log').exists() True >>> Path('/var/log').isdir() True
필요한 기타 관련 사항:
>>> Path('/var/log/system.log').parent Path('/var/log') >>> Path('/var/log/system.log').ancestor(2) Path('/var') >>> Path('/var/log/system.log').listdir() [Path('/var/foo'), Path('/var/bar')] >>> (Path('/var/log') + '/system.log').isfile() True
pip를 사용하여 설치할 수 있습니다.
$ pip3 install unipath
pathlib
와 유사합니다. 차이점은 모든 경로를 문자열로 취급한다는 것입니다( Path
str
의 하위 클래스임). 따라서 일부 함수가 문자열을 예상하는 경우 문자열로 변환할 필요 없이 Path
예를 들어, 이것은 Django 및 settings.py
잘 작동합니다.
# settings.py BASE_DIR = Path(__file__).ancestor(2) STATIC_ROOT = BASE_DIR + '/tmp/static'
다음 코드는 코드의 참조 디렉토리가 존재하는지 여부를 확인하고, 직장에 없으면 생성합니다.
import os if not os.path.isdir("directory_name"): os.mkdir("directory_name")
두가지
import os dirpath = "<dirpath>" # Replace the "<dirpath>" with actual directory path. if os.path.exists(dirpath): print("Directory exist") else: #this is optional if you want to create a directory if doesn't exist. os.mkdir(dirpath): print("Directory created")
출처 : http:www.stackoverflow.com/questions/8933237/how-to-find-if-directory-exists-in-python
텍스트 상자의 Enter 키에서 JavaScript로 버튼 클릭 트리거 (0) | 2023.04.14 |
---|---|
Git 태그의 이름을 어떻게 바꾸나요? (0) | 2023.04.14 |
stderr로 출력하는 echo (0) | 2023.04.13 |
오래된 Docker 컨테이너를 제거하는 방법 (1) | 2023.04.13 |
디스크에서 이미 삭제된 Git 리포지토리에서 여러 파일 제거 (0) | 2023.04.13 |