os.getcwd(),os.path.realpath(__file__),sys.path[0]与绝对路径

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,结果如下:

(4)现在进入到desktop,然后再执行上述命令,可以发现,输出结果是c:\users\administrator\desktop。结果如下:

根据输出可以看到,该方法的输出完全是一个可变因素,就是你现在在哪个目录下运行py文件,它就显示哪个路劲,其实我不太明白这个方法的实际作用,感觉不是很实用,可能是还没用到。

2、os.path.dirname(os.path.realpath(__file__))

        获取包含该执行语句的py文件所在的绝对路劲,比如,我们在test.py文件中加上一句:print(os.path.dirname(os.path.realpath(__file__))),那么我们输出的就是test.py文件的绝对路径。

结果如图:

这个才是我们通常比较关注的路劲,因为通过这个路劲,我们可以调用同路劲下的其他文件,感觉比较方便。可以理解为,上面的print语句在哪个py文件中,以上语句输出的路径就是此py文件的路径。

其中:

(1)os.path.realpath(__file__):获取包含py文件名的完整路径,如果print(),则输出为F:/PycharmProjects/untitled/Cluster/test.py。看到有博主说该方法有时候输出相对路径,有时候输出绝对路径,目前我使用时输出的都是绝对路径。

(2)os.path.dirname():去掉脚本的文件名,返回目录。

(3)os.path.dirname(os.path.realpath(__file__)):指的是,该语句所在py文件的绝对路径,__file__为内置属性。

补充:

与os.path.dirname(os.path.realpath(__file__))有相同功能的是os.path.split(os.path.realpath(__file__))[0]

3、sys.path[0]

        获取当前被python.exe执行的py文件的绝对路径,比如,现在在test1.py中有语句sys.path[0],我们在test.py文件中调用test1.py,然后通过python F:/PycharmProjects/untitled/Cluster/test.py输出的就是test.py所在的路劲F:/PycharmProjects/untitled/Cluster

4、案例总结:

现在有py文件:

F:\PycharmProjects\untitled\Cluster\father.py

F:\PycharmProjects\untitled\Cluster\sub\son.py

在father中调用son里面的模块,两个文件的内容如下:

现在在c:\users\administrator下运行father.py文件,结果如下:

发布了29 篇原创文章 · 获赞 16 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/u011412768/article/details/84312226