我是 python django 框架的新手,我不太明白为什么
os.path.dirname(__file__)
和
os.path.dirname(os.path.dirname(__file__))
返回一个空字符串。
我的文件夹结构如下:
djangoWorkspace/
tangoWithDjangoProject/
rango/
tangoWithDjangoProject/
settings.py
Settings.py 包含目录名的代码。
最佳答案
os.path.dirname(os.path.dirname(__file__))
没有任何意义。您需要调用os.path.dirname(os.path.abspath(__file__))
正如重复问题中所建议的。
结果为空,因为 __file__
仅包含 Python 文件的文件名。
os.path.dirname
不解析给定文件的位置,而只是从给定字符串中删除文件名。
os.path.dirname('../foo/bar/baz.txt')
Out[4]: '../foo/bar'
如您所见,路径尚未解析,bar.txt
只是从字符串中删除了。
你正在做的事情相当于:
__file__ = 'baz.txt'
os.path.dirname(__file__)
Out[6]: ''
相反,你应该这样做:
os.path.dirname(os.path.abspath(__file__))
Out[10]: '/home/noxdafox/foo/bar'
关于python - os.path.dirname 在 django 中返回空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31498222/