FileNotFoundError при open() — хотя файл точно лежит рядом со скриптом
f = open("data.txt")
кидает FileNotFoundError: [Errno 2] No such file or directory: 'data.txt', хотя data.txt лежит в той же папке, что и .py-файл. В чём подвох?
3 ответа
open("data.txt") ищет файл не рядом со скриптом, а в текущей рабочей директории — это папка, ИЗ которой вы запустили программу, а не где лежит сам .py. Если запускаете из другого места (или из IDE с другим рабочим каталогом), путь data.txt указывает совсем не туда.
Проверить, где Python сейчас ищет:
import os
print(os.getcwd())
Надёжное решение — строить путь относительно самого скрипта:
import os
base = os.path.dirname(os.path.abspath(__file__))
path = os.path.join(base, "data.txt")
f = open(path, encoding="utf-8")
Ещё частые мелочи: опечатка в имени, лишнее/недостающее расширение (Windows может прятать .txt), или файл реально в подпапке.
Распечатай os.getcwd() — почти всегда окажется, что рабочая папка не та, что ты думаешь.
Проверь расширение: на Windows часто это на самом деле data.txt.txt.