Если причина, по которой вы проверяете, заключается в том, что вы можете сделать что-то вроде 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