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()
 

posted @ 2018-02-10 15:56  xiaoqi_小七  阅读(357)  评论(0)    收藏  举报