python - os.path.dirname 在 django 中返回空字符串

标签 python django path

我是 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/

相关文章:

python - 从views.py中取出不相关的代码

windows - Curl for Windows - curl 无法打开文件 C :\test. txt

c# - 检查路径区分大小写

python - 从数据框中的其他列创建计算列

Python。如何求和列表中的所有偶数?

python - 尝试创建一个具有常用命令功能的动态菜单

django - taggit 和 haystack+whoosh

django - 如何在每个字段的MultiValueField/MultiWidget中呈现验证错误

linux - Linux Mint 的 Grails 问题

python - pickle 和打开文件之间的区别?