Python里面的os两种获取路径的模式:getcwd和os.path.realpath()的区别
来个考题,快来回答下!!
Python里面的os两种获取路径的模式:getcwd和os.path.realpath()的区别
来个考题,快来回答下!!
根据一楼同学的结论进行的实际操作发现的不同
创建两个不同的文件夹A_1和B_1
在A_1下面创建一个py文件test_1
在A_1下面创建一个文件夹path_test,并在文件夹内放新建一个py文件A_2.py
在B_1下面创建一个py文件test_2
在test_1分别用getcwd和realpath的方法获取A_2.py的路径
import os
#使用getcwd获取根目录,在用jion拼接
base_path_2=os.getcwd()
A_2_getcwd_path=os.path.join(base_path_2,'path_test','A_2.py')
#print('使用getcwd方式的A_2路径',A_2_getcwd_path)
#使用realpath获取根目录,在用jion拼接
#print('--------------------分割线线线线------------------------')
base_path_1=os.path.split(os.path.realpath(__file__))[0]
A_2_real_path=os.path.join(base_path_1,'path_test','A_2.py')
#print('使用realpath方式的A_2路径',A_2_real_path)
输出结果
现在在B_2.py下面获取这两个变量A_2_getcwd_path和A_2_real_path
from A_1 import test_1
print('在B_1文件夹下,获取使用getcwd方式的A_2路径',test_1.A_2_getcwd_path)
print('------------------------------分割线-------------------------------------')
print('在B_1文件夹下,获取使用realpath方式的A_2路径',test_1.A_2_real_path)
输出结果如下
可以发现使用realpath方法获得路径经过调用后没有发生变化
但是用getcwd方法获取的路径发了变化:
1.第一次使用时test_1实在A_1下面,所以生成的当前目录是:E:\python_12\A_1\path_test\A_2.py
2.经过调用后,test_2是在B_1下面,所以生成的当前目录是:E:\python_12\B_1\path_test\A_2.py
总结:getcwd会根据当前文件所以在位置而进行变化,调用时要注意两个文件是不是在同一个目录下面
getcwd()获取当前目录;其他文件调用时,会根据当前文件的位置获取目录,不同的文件调用,值是不一样的。
os.path.realpath()获取真实路径;其他文件调用时,仍是取这个路径,不会发生变化。
欢迎来到testingpai.com!
注册 关于