[英]Django : Create a dynamic path with BASE_DIR
我有一个非常简单的问题,但我不明白为什么它不起作用。 我想将路径设置为.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文件?
您可以在错误消息中看到该问题: 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/library/os.path.html#os.path.join
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.