Python 3.4+pathlibфункция
.is_file()
проверки
Проверяет, что путь существует и указывает на обычный файл. Для каталога и для несуществующего пути — False.
Синтаксис
p.is_file()
«Обычный файл» здесь означает именно обычный: сокеты, именованные каналы и файлы устройств существуют, но is_file() для них вернёт False. Симлинк прослеживается — ссылка на файл считается файлом. Не стройте логику на отрицании: not p.is_file() ещё не значит «каталог», это может быть и просто несуществующий путь.
Примеры
from pathlib import Path
import sys
Path('/etc/hosts').is_file() # → True
Path('/tmp').is_file() # → False (это каталог)
print(Path(sys.executable).is_file()) # → True (сам интерпретатор — обычный файл)
print(Path(sys.executable).parent.is_file()) # → False (каталог, хотя exists() → True)
print(Path('no_such_file_42.txt').is_file()) # → False (несуществующий путь, а не исключение)
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности