try
명령문 을 사용하지 않고 파일의 존재 여부를 어떻게 확인 합니까?
파이썬
[Python] 파일이 예외 없이 존재하는지 어떻게 확인합니까?
zooheon
2022. 7. 31. 13:48
반응형
확인하는 이유가 다음과 같은 작업을 수행할 수 있도록 하기 위한 것이라면 여는 시도 주변에서 if file_exists: open_it()
사용하는 것이 더 안전 합니다. try
확인하고 열면 파일이 삭제되거나 이동되거나 확인할 때와 열려고 할 때 사이에 위험이 있습니다.
파일을 즉시 열 계획이 아니라면 다음을 사용할 수 있습니다.os.path.isfile
True
경로가 기존 일반 파일이면 반환 합니다. 이것은 심볼릭 링크를 따르므로 islink() 및 isfile() 모두 동일한 경로에 대해 true일 수 있습니다.
import os.path
os.path.isfile(fname)
파일인지 확인해야 하는 경우.
Python 3.4부터 pathlib
모듈 은 객체 지향 접근 방식을 제공합니다( pathlib2
Python 2.7에서 백포트됨).
from pathlib import Path
my_file = Path("/path/to/file")
if my_file.is_file():
# file exists
디렉토리를 확인하려면 다음을 수행하십시오.
if my_file.is_dir():
# directory exists
Path
객체가 파일인지 디렉토리인지 독립적으로 존재 하는지 확인하려면 다음을 사용 exists()
하십시오.
if my_file.exists():
# path exists
블록 resolve(strict=True)
에서 사용할 수도 있습니다 .try
try:
my_abs_path = my_file.resolve(strict=True)
except FileNotFoundError:
# doesn't exist
else:
# exists
os.path.exists
파일과 디렉토리를 모두 확인하는 데 사용 합니다.
import os.path
os.path.exists(file_path)
파일만 검사하는 데 사용 os.path.isfile
합니다(참고: 심볼릭 링크를 따릅니다).
os.path.isfile(file_path)
와 달리 디렉토리에 대해 isfile()
반환 exists()
됩니다 . True
따라서 일반 파일만 원하는지 아니면 디렉터리도 원하는지에 따라 isfile()
또는 exists()
. 다음은 간단한 REPL 출력입니다.
>>> os.path.isfile("/etc/password.txt")
True
>>> os.path.isfile("/etc")
False
>>> os.path.isfile("/does/not/exist")
False
>>> os.path.exists("/etc/password.txt")
True
>>> os.path.exists("/etc")
True
>>> os.path.exists("/does/not/exist")
False
반응형