python中os.path.dirname()和os.getcwd()获取文件当前目录的区别之处
在平常使用中经常遇到如何定位一个文件的绝对路径,那么目前比较常用的方法有:os.getcwd()和os.path.dirname(__file__)两种方式,那么他们有什么区别之处呢?
首先我们来看两个方法的用法:
1.获取当前文件目录
os.path.dirname(__file__)
os.getcwd()
2.获取当前文件目录的上一级目录
os.path.dirname(os.path.dirname(__file__)
列如:
file_path="D:\Work\OVUPARK\ovupark_autotest\config\globalparameter.py"
>>>os.path.dirname(__file__) #__file__代表"globalparameter.py"即该代码所在的文件
>>>D:\Work\OVUPARK\ovupark_autotest\config #获取改文件的当前目录
>>>os.path.dirname(os.path.dirname(__file__) #获取上一级目录
>>>D:\Work\OVUPARK\ovupark_autotest
>>>os.getcwd()
>>>D:\Work\OVUPARK\ovupark_autotest\config
1-2中两个获取的文件目录都是基于__file__所在文件的目录,
运行的代码都在该文件中,如果我们在其他文件中调用他们的话结果就不同了
在test.py中调用上面的方法,会发现os.getcwd()是获取执行时该代码所在文件的目录,os.path.dirname(__file__)是获取__file__所在的目录
D:\Work\OVUPARK\ovupark_autotest\report\test.py
project=os.path.dirname(os.path.dirname(__file__)
config=os.path.getcwd()
>>>from ovupark_autotest.config import globalparameter as gl
>>>gl.project
>>>D:\Work\OVUPARK\ovupark_autotest
>>>gl.config
>>>D:\Work\OVUPARK\ovupark_autotest\report
总结: 如果想引用一个文件的绝对路径,且希望该路径是唯一不变,任何引用都不会改变该路径时,用os.path.dirname(__file__)
如果是想获取执行文件的当前路径,那么用os.getcwd()

浙公网安备 33010602011771号