← Все вопросы
Как проверить, существует ли файл, перед тем как его открыть?
13
Не хочу падать с ошибкой, если файла нет. Как заранее проверить, что он существует? Видел os.path и pathlib — что выбрать?
4 ответа
21
✓ Принятый ответ — помог автору
Два рабочих способа:
import os
os.path.exists('data.txt') # True/False (файл или папка)
os.path.isfile('data.txt') # именно файл
Или через pathlib (более современно):
from pathlib import Path
Path('data.txt').exists()
Path('data.txt').is_file()
Но учти про гонку: между проверкой и открытием файл может исчезнуть. Часто чище просто попробовать открыть и поймать FileNotFoundError через try/except — это питоничный подход «проще попросить прощения, чем разрешения».
Сергей Новоселов про гонку — хороший поинт, спасибо · 9 месяцев назад
6
os.path.exists('файл').
5
Бери pathlib, если пишешь новый код. Path('x').exists() читается приятнее, чем os.path.
-5
Проверяй через if open('data.txt'), вернёт False если нет.
Svyatoslav Makarov так нельзя, open кидает исключение, а не возвращает False · 9 месяцев назад
Ваш ответ
Войдите, чтобы ответить на вопрос.