У меня очень простой вопрос, но я не понимаю, почему он не работает. Я хотел бы установить путь к .json file
следующим образом:
with open(settings.BASE_DIR + '../../package.json') as package_json_file:
Но я получаю эту проблему:
FileNotFoundError: [Errno 2] No such file or directory: '/home/val/Bureau/Projets/APP/app/src../../package.json'
Как я могу определить путь от BASE_DIR
и вернуться к файлу .json?
2 ответа
Вы можете увидеть проблему в сообщении об ошибке: src../../package.json
- в src..
отсутствует косая черта.
Вместо объединения строк используйте os.path.join
, чтобы вам не приходилось беспокоиться о пропущенных / дублирующих косых чертах.
import os
os.path.join(settings.BASE_DIR, '../../package.json')
Прежде всего, проблема в вашем коде должна быть очевидной: вам не хватает обратной косой черты между BASE_DIR
и жестко закодированным путем, который вы добавляете. Это это
with open(settings.BASE_DIR + '/../../package.json') as package_json_file:
Должно работать (если пакет там, конечно).
Однако, чтобы избежать таких несоответствий, лучше явно использовать os.path.join
для правильного создания путей, т.е. вы можете использовать что-то вроде
with open(os.path.join(settings.BASE_DIR, '..', '..', 'package.json')) as package_json_file:
Дополнительная информация о присоединении: https: //docs.python .org / 3 / библиотека / os.path.html # os.path.join
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.