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”。