← Все вопросы

Как проверить, существует ли файл, перед тем как его открыть?

Задан 10 месяцев назад1к просмотров4 ответа
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 месяцев назад

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект