Как проверить, существует ли файл на Python
-
try...except
для проверки существования файла (>=Python 2.x) -
os.path.isfile()
для проверки существования файла (>=Python 2.x) -
pathlib.Path.is_file()
чтобы проверить существует ли файл (>=Python 3.4)

В этом уроке будут представлены три различных решения для проверки существования файла на Python.
- Блок
try...except
для проверки существования файла (>=Python 2.x). - Функция
os.path.isfile
для проверки существования файла (>=Python 2.x). pathlib.Path.is_file()
проверка существования файла (>=Python 3.4)
try...except
для проверки существования файла (>=Python 2.x)
Мы можем попробовать открыть файл и проверить, существует ли файл или нет, в зависимости от того, будет ли брошена IOError
(на Python 2.x) или FileNotFoundError
(на Python 3.x) или нет.
def checkFileExistance(filePath):
try:
with open(filePath, 'r') as f:
return True
except FileNotFoundError as e:
return False
except IOError as e:
return False
В приведённых выше примерах мы делаем Python 2/3 совместимым, перечисляя FileNotFoundError
и IOError
в части исключения catching.
os.path.isfile()
для проверки существования файла (>=Python 2.x)
import os
fileName = r"C:\Test\test.txt"
os.path.isfile(fileName)
Проверяет, существует ли fileName
.
Некоторые разработчики предпочитают использовать os.path.exists()
для проверки существования файла. Но он не может определить, является ли объект файлом или каталогом.
import os
fileName = r"C:\Test\test.txt"
os.path.exists(fileName)
#Out: True
fileName = r"C:\Test"
os.path.exists(fileName)
#Out: True
Поэтому, используйте os.path.isfile
только в том случае, если хотите проверить, существует ли файл.
pathlib.Path.is_file()
чтобы проверить существует ли файл (>=Python 3.4)
Начиная с Python 3.4, в модуле pathlib
вводится объектно-ориентированный метод для проверки существования файла.
from pathlib import Path
fileName = r"C:\Test\test.txt"
fileObj = Path(fileName)
fileObj.is_file()
Аналогичным образом, он также имеет методы is_dir()
и exists()
для проверки, существует ли каталог или файл/каталог.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedInСопутствующая статья - Python File
- Как получить все файлы каталога
- Как удалить файл и каталог на Python
- Как добавить текст к файлу в Python
- Как найти файлы с определенным расширением только на Python
- Откройте zip-файл, не распаковывая его в Python