背景
在 python 脚本的执行过程中,可能会调用脚本所在目录的一些配置文件,此时就会设计到脚本目录的获取,常见的目录获取方法有三种:
1. os.getcwd()
2. sys.path[0]/sys.argv[0]
3. os.path.split(os.path.realpath(__file__))[0]
下面针对三种路径的获取进行说明,假设给定我们的代码目录如下:
|---/home/test
|---dirtest
|---dirtest.py
|---setting.ini
|---mytests
import os
import sys
if __name__ == '__main__':
dir1 = os.getcwd()
dir2 = sys.path[0]
dir3 = sys.argv[0]
dir4 = os.path.split(os.path.realpath(__file__))[0]
print(dir1)
print(dir2)
print(dir3)
print(dir4)
场景一:
在目录 /home/test/dirtest/ 下执行 dirtest.py 脚本,三种方式获取到的路径一致
场景二:
在目录 /home/test/mytest/ 目录下执行 dirtest.py 脚本,三种方式获取的路径分别为
总结:
1. os.getcwd() # 获得程序运行时的当前目录所在位置,即就是你在哪个目录下调用,就是哪个目录
2. sys.path[0]/sys.argv[0] # 获得当前执行的脚本的所在目录位置, 如果用 python 调用,就是 python 后面跟着的第一个参数
3. os.path.split(os.path.realpath(__file__))[0] # 获取的是当前执行的脚本文件所在的目录