← Все вопросы

FileNotFoundError: No such file or directory — почему Python не находит файл?

Задан 29 месяцев назад1.2к просмотров2 ответа
8

Открываю файл open('data.txt'), а получаю FileNotFoundError: [Errno 2] No such file or directory: 'data.txt'. Файл же лежит в той же папке! Из-за чего Python его не видит и как указать путь?

2 ответа

11
✓ Принятый ответ — помог автору

FileNotFoundError значит: Python ищет файл по указанному пути и не находит его там. «Та же папка» — обманчивое понятие: важно не где лежит ваш .py файл, а из какой папки запущена программа (рабочая директория).

Частые причины:

  1. Запуск из другой папки. Если вы запустили скрипт из домашней директории, open('data.txt') ищет файл именно там, а не рядом со скриптом.
  2. Опечатка в имени или расширении (data.txt против Data.txt или data.text). На Linux/macOS регистр важен.
  3. Файла действительно нет или он называется иначе.
  4. Для чтения нужен режим 'r' (по умолчанию), а файла не существует — open его не создаёт.

Как чинить:

  • Проверьте текущую папку:
import os
print(os.getcwd())              # откуда запущено
print(os.listdir())             # какие файлы тут видны
  • Укажите полный путь или путь рядом со скриптом:
import os
base = os.path.dirname(os.path.abspath(__file__))
path = os.path.join(base, "data.txt")
with open(path, encoding="utf-8") as f:
    print(f.read())

Если файл вы собираетесь создавать — откройте его на запись open('data.txt', 'w').

4

Быстрая диагностика: добавьте перед open строки import os; print(os.getcwd()); print(os.listdir()). Вы сразу увидите, в какой папке Python ищет и какие файлы там реально есть. В 9 из 10 случаев окажется, что рабочая папка не та, что вы думали.

Ваш ответ

, чтобы ответить на вопрос.