问题: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__)
返回空?
回答 0
因为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__))
回答 1
也可以这样使用:
dirname(dirname(abspath(__file__)))
回答 2
os.path.split(os.path.realpath(__file__))[0]
os.path.realpath(__file__)
返回当前脚本的abspath;os.path.split(abspath)[0]返回当前目录
回答 3
import os.path
dirname = os.path.dirname(__file__) or '.'
回答 4
print(os.path.join(os.path.dirname(__file__)))
您也可以使用这种方式
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。