Что означает ошибка FileNotFoundError: [Errno 2] No such file or directory
easy

Что означает ошибка FileNotFoundError: [Errno 2] No such file or directory

Когда скрипт не может найти нужный файл

Ситуация: мы решили запустить проект с облаком самых популярных слов в «Войне и мире» на другом компьютере. Первое, что нам нужно сделать, — открыть файл, прочитать его и вывести первые 300 символов на экран. Для этого копируем код из проекта, вставляем в среду разработки и запускаем. Но вместо текста видим на экране ошибку:

❌ FileNotFoundError: [Errno 2] No such file or directory: 'tom1.txt'

Что означает ошибка FileNotFoundError: [Errno 2] No such file or directory

Странно, ведь мы взяли точно рабочий код и просто запустили его на новом компьютере, ничего в нём не меняя, но что-то пошло не так.

Что это значит: Python не может найти файл, который мы указали для открытия. Это не знает, что его нет, просто компьютер не находит его по указанному нами месту.

Когда встречается: когда мы ошиблись в написании пути к файлу или в его имени.

Что делать с ошибкой FileNotFoundError: [Errno 2] No such file or directory

Первое, что нужно проверить: а есть ли у нас вообще этот файл? Иногда бывает так, что мы, копируя чужой код, забываем изменить имена файлов на те, которые есть у нас (а не оставлять те, которые были у авторов кода). Если это наш случай, то просто меняем имя файла в скрипте на правильное. 

Следующий шаг: нужно указать правильный путь к файлу или положить тот файл в папку со скриптом, который мы запускаем. Если файл называется tom1.txt, то его можно просто положить или скопировать в ту же папку, что и скрипт, и ошибки не будет:

Что делать с ошибкой FileNotFoundError: [Errno 2] No such file or directory

Если файл должен остаться на своём месте, а скрипт — запускаться из любой папки, то нам нужно указать точный адрес файла. Для этого можно написать полный или относительный путь к файлу, и тогда скрипт будет находить его при запуске из любого места. 

В нашем случае мы указали такой путь:

/Users/mihailpolanin/Yandex.Disk.localized/Документы/Яндекс.КОД/исходники/tom1.txt

Что делать с ошибкой FileNotFoundError: [Errno 2] No such file or directory

При этом важно помнить про различие в написании пути на компьютерах с Windows, Mac OS и Linux. В Windows при написании пути папки отделяются друг от друга слешем — косой чертой, наклонённой направо → /. В этом случае путь выглядел бы так:

C:/Users/Documents/test/tom1.txt

А вот на компьютерах с Mac OS и Linux папки отделяются друг от друга обратной косой чертой, или бэкслешем → /

Если вы запускаете чужой код у себя на компьютере, проверьте написание пути к файлу: используете ли вы правильные разделители и точно ли указали путь к нужному файлу.

Текст:

Михаил Полянин

Редактор:

Михаил Полянин

Обложка:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Мария Дронова

Соцсети:

Юлия Зубарева

Курс «C++ для бэкенда»
Если интересно делать быстрые высоконагруженные системы, посмотрите на программу курса «Яндекс Практикума». Понятная теория, тренажеры, поддержка ревьюеров и обучение в группе, всё как надо.
Посмотреть
Курс «C++ для бэкенда»
Курс «C++ для бэкенда»
Курс «C++ для бэкенда»
Курс «C++ для бэкенда»
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
easy