获取绝对路径

import os
print(os.path.abspath(__file__))  #file前后是两个下划线,如果直接复制到代码中,可能不认识,建议手输

输出:

D:/si/bd/No/text.py

注意:Python控制台下,直接使用print _ _ file _ 是会导致 name ‘ _ file _ ’ is not defined错误的,因为这时没有在任何一个脚本下执行,自然没有 _ file _ _的定义了。

os.getcwd()、sys.path[0] (sys.argv[0])和file的区别
假设目录结构是:
复制代码 代码如下:

C:test
|-getpath
    |-path.py
    |-sub
        |-sub_path.py

然后我们在C:\test下面执行python getpath/path.py,这时sub_path.py里面与各种用法对应的值其实是:

os.getcwd() “C:\test”,取的是起始执行目录

sys.path[0]或sys.argv[0] “C:\test\getpath”,取的是被初始执行的脚本的所在目录

os.path.split(os.path.realpath(file))[0] “C:\test\getpath\sub”,取的是file所在文件sub_path.py的所在目录