Перейти к содержимому

Errno 2 no such file or directory python как исправить

  • автор:

FileNotFoundError: [Errno 2] No such file or directory: ‘config.txt’, как исправить?

Пишу я бота на питоне, и мне нужно, чтобы его токен читался из файла который находится в этой же директории (в папке bot есть два файла — python скрипт и config.txt)
Когда я запускаю, мне выбивает ошибку, мол такой файл не найден, хотя он есть:

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

Пробовал ставить /, //, \, \\ — не помогает
ОС — Win 7
Как это исправить?

  • Вопрос задан более двух лет назад
  • 5576 просмотров

Комментировать
Решения вопроса 2

Vindicar

Путь у вас относительный. Поэтому он считается относительно текущего рабочего каталога. Этот каталог может совпадать с каталогом, в котором лежит скрипт, а может не совпадать!
Поэтому лучший способ — вычислять путь самому.
sys.argv[0] всегда указывает на путь к файлу скрипта.
Поэтому можно сделать либо так (с помощью os.path):

os.path.join(os.path.dirname(sys.argv[0]), 'config.txt')

либо так (с помощью pathlib)
pathlib.Path(sys.argv[0]).parent / ‘config.txt’
Ответ написан более двух лет назад
Комментировать
Нравится 2 Комментировать
Hacker2961 @Hacker2961 Автор вопроса

Для тех у кого была такая же проблема, радуйтесь! Я все решил!

Создайте в этой же директории с файлами .py и config.txt файл start.bat в котором следующий код:
python ваш_файл.py и запускайте этот батник
У меня это решило проблему!

[Errno 2] No such file or directory VS code

Привет! Ошибка «No such file or directory» обычно возникает, когда программа пытается найти файл, который не существует в указанном месте. Возможно, вы пытаетесь запустить файл, который не существует в текущей директории.

Если вы используете VS Code, то можете проверить, что текущая директория правильная, открыв терминал в VS Code и выполнить команду «pwd» (без кавычек). Эта команда покажет текущую директорию.

Если вы уверены, что файл существует в текущей директории, то можете попробовать указать полный путь к файлу вместо относительного пути. Например, если файл находится в директории «C:\Users\Username\Documents\Project», то вы можете указать полный путь к файлу «C:\Users\Username\Documents\Project\filename.ext».

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

Надеюсь, эти советы помогут вам решить проблему. Если у вас есть дополнительные вопросы, я буду рад помочь вам.

ItzkeeniУченик (71) 8 месяцев назад

Может быть связанно с тем, что в пути есть пробел? к примеру вот путь к моему файлу C:\Users\artem\Рабочий стол\bot.py

\python.exe: can’t open file »: [Errno 2] No such file or directory?

vabka

python

  • Python

Как исправить ошибку с получением и проверкой данных?

  • 1 подписчик
  • час назад
  • 31 просмотр

python

  • Python
  • +1 ещё

Как реализовать базовый класс для динамического создания подклассов без вызова рекурсии в Python?

  • 1 подписчик
  • 3 часа назад
  • 68 просмотров

Ошибка FileNotFoundError: [Errno 2] No such file or directory

картинка

Командная строка выдает ошибку FileNotFoundError: [Errno 2] No such file or directory , подробнее на скрине (столкнулся с такой проблемой, изучая учебник Лутца по Python и не могу сдвинуться в изучении языка из-за этого) Буду признателен за помощь. Код script1.py:

import sys print(sys.platform) print(2**100) x='spam!' print(x*8) 

Отслеживать
48.6k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
задан 21 сен 2018 в 7:00
Арефьев Данил Арефьев Данил
11 1 1 золотой знак 1 1 серебряный знак 6 6 бронзовых знаков
Ну в общем да, пробел — фиговая замена слэшу.
21 сен 2018 в 7:03
@Akina я где-то допустил ошибку?
21 сен 2018 в 7:13

На скриншоте я вижу в сообщении об ошибке следующее имя файла: ‘c:\\python370 script1.py’ . Тогда как согласно окну эксплорера оно должно быть ‘c:\\python370\script1.py’ .

21 сен 2018 в 7:18
@Akina и как мне это исправить,я же не прописывал эту команду?
21 сен 2018 в 7:23

А кто? я вообще к тому компьютеру не прикасался. само собой оно не запустится, кто-то должен дать команду — вот к этому кому-то и адресуйте вопросы. На скриншоте даже самой команды не видно.

21 сен 2018 в 7:46

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Есть различные способы задать путь к файлу или папке:

  • c:\python370\script1.py — абсолютный путь
  • script1.py — относительный путь, задается относительно текущей рабочей директории. В данном случае файл должен находиться в текущей директории.

В вашем случае текущая директория C:\Users\Acer , вы пытаетесь открыть файл script1.py , но он у вас находится не в этой директории, а в c:\python370 . Поэтому просто по имени файла вы файл не откроете, нужно указать полный (абсолютный) путь:

exec(open('c:\\python370\\script1.py').read()) 

Или запускать Python сразу из нужной директории — двойным кликом по файлу python.exe в папке c:\python370 или в окне cmd сначала перейти в директорию, где лежит нужный файл, потом запустить python, и пробовать открыть файл.

Microsoft Windows [Version 6.1.7601] (c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены. C:\Users\Михаил> 

C:\Users\Михаил — это текущая директория.

Меняем текущую директорию такой командой (опять же в cmd, до запуска python):

cd c:\Python370 

В python текущую директорию можно узнать, выполнив команды:

import os print(os.getcwd()) 

cwd — сокращение от current working directory — текущая рабочая директория.

Поменять текущую директорию из Python можно так:

import os os.chdir('c:\\python370') 

В итоге, если текущая рабочая директория не совпадает с директорией, где лежит файл, то вы не сможете открыть файл просто по его имени. Нужно или указать полный (абсолютный) путь, или изменить текущую директорию.

Кстати, чтобы не экранировать обратные слеши в строке пути, можно использовать «сырые» (raw) строки, с буквой r перед кавычками, например:

import os os.chdir(r'c:\python370') 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *