python 获取当前当前目录 脚本目录 被执行脚本目录

  获取目录的时候,google得到的结果一般都是使用os模块的getcwd()函数,但总是获取不到,额,英语不是很好,搞很久才明白,原来获取的是当前工作目录。

  好吧,总是不知道用什么关键词来进行查找,能力有限哦......终于皇天不负有心人,原来获得当前执行的脚本的所在目录位置,那么需要使用sys模块的sys.path[0]变量或者sys.argv[0]来获得。实际上sys.path是Python会去寻找模块的搜索路径列表,sys.path[0]和sys.argv[0]是一回事,因为Python会自动把sys.argv[0]加入sys.path。

  总之,举个例子来讲:

   home/echo

     |

        [dir]test

        [file]test.py

运行test/test.py,使用以下的命令:

  •   os.getcwd(),home/echo,取的是当前的工作目录
  •   os.path[0]|os.argv[0] test/test.py,取的是被初始执行脚本所在的目录
  •    os.path.realpath(__file__),/home/echo/test/test.py,取的是脚本的完整目录

特别的__file__这个变量有时候返回相对路径,有时候返回绝对路径,因此还要用os.path.realpath()函数来处理一下。也即在这个例子 里,os.path.realpath(__file__)输出是“/home/echo/test/test.py”,而 os.path.split(os.path.realpath(__file__))[0]输出是“/home/echo/test”。

 

作者:xiaoxia

出处:http://cnblogs.com/xiaoxia

我的淘宝:http://shop62115161.taobao.com/

本文遵从GNU 的自由文档许可证(Free Document License)的条款,欢迎转载、修改、散布。

 

 

posted on 2010-07-30 18:11  9号  阅读(2629)  评论(0编辑  收藏  举报

导航