python - os.path.dirname(__file__) 返回空

我想获取当前执行.py文件所在目录的路径。

例如一个简单的文件 D:\test.py 带有代码:

import os

print os.getcwd()
print os.path.basename(__file__)
print os.path.abspath(__file__)
print os.path.dirname(__file__)

奇怪的是输出是:

D:\
test.py
D:\test.py
EMPTY

我期望 getcwd()path.dirname() 的结果相同。

给定os.path.abspath = os.path.dirname + os.path.basename,为什么

os.path.dirname(__file__)

返回空?

最佳答案

因为 os.path.abspath = os.path.dirname + os.path.basename 不成立。我们宁愿有

os.path.dirname(filename) + os.path.basename(filename) == filename

dirname()basename() 都只将传递的文件名拆分为组件,而不考虑当前目录。如果您还想考虑当前目录,则必须明确这样做。

要获取绝对路径的目录名,请使用

os.path.dirname(os.path.abspath(__file__))

https://stackoverflow.com/questions/7783308/

相关文章:

python - 如何为子图设置 xlim 和 ylim

python - 在几个文件中拆分views.py

python - 打印 Python 类的所有属性

c - 如何在linux c程序中获取pthread的线程ID?

linux - Unix:如何删除文件中列出的文件

linux - 如何 RSYNC 单个文件?

python - 如何在 Python 中进行 scp?

python - 在 IPython 中自动重新加载模块

python - 在批处理文件中休眠

linux - shell脚本杀死监听端口3000的进程?