一: os.path.dirname(__file__)和os.getcwd()
import os
path = os.path.dirname(__file__)
print("os.path.dirname(__file__)方法的结果{}".format(path))
path = os.getcwd()
print("os.getcwd()方法的结果{}".format(path))
该脚本路径为:/User/xxx/Work
1.在当前目录 /User/xxx/ Work运行程序结果:
2.在上一级目录 /User/xxx 运行程序:
3.在其他目录 /User/xxx/Work/python 运行程序:
在其他目录 /User/xxx/tools 运行程序:
结论:
os.path.dirname(__file__):获取的是程序路径的文件/目录的名称(如果在程序本身位置则为空,否则一直指向程序的文件/目录路径)
os.getcwd():获取的是当前运行程序的文件/目录路径(不管程序放在哪,你在哪运行都是获取此时的路径)
二:os.path.abspath(__file__) 获取程序的绝对路径
1.
import os
path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print("结果:{}".format(path))
当前程序目录运行结果:
2.
import os
path = os.path.dirname(os.path.abspath(__file__))
print("结果:{}".format(path))
当前程序目录运行结果:
其他目录运行:
3.
import os
path = os.path.abspath(__file__)
print("结果:{}".format(path))
当前程序目录运行结果:
其他目录运行:
总结:
os.path.abspath(__file__):不论在哪运行都是获取程序的绝对路径。
因为最开始使用有点懵逼,所以写清楚各个情况下的运行结果,更好的理解该方法。
推荐:
os.path.abspath(__file__)与os.path.dirname(__file__)搭配使用更好哟~