1、os.getcwd()
该方法用于获取执行py文件的位置空间,可以理解为当前的执行目录,完全与py文件所在的位置无关,下面是一个小例子,比如:
(1).py文件的位置:F:/PycharmProjects/untitled/Cluster/test.py,该文件中包含命令print os.getcwd()
(2)敲cmd进入Windows的命令行界面,这个时候我们所在的目录是c:\users\administrator
(3)我们用已经安装好的Python环境运行(1)中的Python文件,得到的就是c:\users\administrator,结果如下:
2、os.path.dirname(os.path.realpath(__file__))
获取包含该执行语句的py文件所在的绝对路径,比如,我们在test.py文件中加上一句:print(os.path.dirname(os.path.realpath(__file__))),那么我们输出的就是test.py文件的绝对路径。
接下来写个案例,一探究竟:
import os
def getCurPath1():
cur_path = os.path.dirname(os.path.realpath(__file__))
return cur_path
def getCurPath2():
cur_path = os.getcwd()
return cur_path
print('func1----' + getCurPath1())
print('func2----' + getCurPath2())
此时,我在cmd 用python3 以绝对路径方式执行py文件:
C:\Users\86187>python3 E:/untitled/test.py
打印结果为:
不难看出,getcwd是获取执行该文件的命令位置,os.path.realpath(__file__) 是获取该py文件(脚本)所在目录的绝对位置。
(1)os.path.realname(__file__):获取包含py文件名的完整路径
(2)os.path.dirname():去掉脚本的文件名,返回目录。
(3)os.path.dirname(os.path.realname(__file__)):指的是,该语句所在py文件的绝对路径,__file__为内置属性。
补充:
与os.path.dirname(os.path.realname(__file__))有相同功能的是os.path.split(os.path.realname(__file__))[0]
3、sys.path[0]
获取当前被python.exe执行的py文件的绝对路径,比如,现在在test.py中有语句print(sys.path[0]),我们在test.py文件中调用test.py,然后通过python3 E:/untitled/test.py输出的就是test.py所在的路劲E:\untitled
import os
import sys
def getCurPath1():
cur_path = os.path.dirname(os.path.realpath(__file__))
print(sys.path[0])
return cur_path
def getCurPath2():
cur_path = os.getcwd()
print(sys.path[0])
return cur_path
print('func1----' + getCurPath1())
print('func2----' + getCurPath2())
参考:https://blog.youkuaiyun.com/u011412768/article/details/84312226