获取绝对路径
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的所在目录