os.path.dirname(__ file__)返回空白
我想要得到执行.py文件的当前目录的path。
一个简单的文件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()
仅将传入的文件名拆分为组件,而不考虑当前目录。 如果你还想考虑当前的目录,你必须明确地这样做。
要获取绝对path的dirname,请使用
os.path.dirname(os.path.abspath(__file__))
也可以这样使用:
dirname(dirname(abspath(__file__)))
print(os.path.join(os.path.dirname(__file__)))
你也可以用这种方式
os.path.split(os.path.realpath(__file__))[0]
os.path.realpath(__file__)
返回当前脚本的abspath; os.path.split(abspath)[0]返回当前目录
import os.path dirname = os.path.dirname(__file__) or '.'