os.path.dirname(os.path.realname(__file__))和os.getcwd()以及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,结果如下:

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

打印结果为:

os.path.dirname(os.path.realname(__file__))和os.getcwd()以及sys.path[0]讲解_第1张图片

不难看出,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())

os.path.dirname(os.path.realname(__file__))和os.getcwd()以及sys.path[0]讲解_第2张图片


参考:https://blog.csdn.net/u011412768/article/details/84312226 

你可能感兴趣的:(os)