结论:
#获取当前python文件所在目录:
os.path.split(os.path.realpath(__file__))[0]
#获取工作目录:
os.getcwd()
一个程序启动时涉及两个目录,一个是工作目录(调用者所在目录),另外一个是被执行文件的所在目录。这两个目录可能不一致。
1.路径和文件名信息
当启动一个python脚本时,python解释器继承工作目录,并搜索启动脚本文件。
工作目录和脚本名在调用时已经提供,可以直接记录。使用这两个信息可以获得各文件的绝对路径。
1. 工作目录
#python解释器工作目录
getcwd()
2. 脚本名
#脚本路径, 调用脚本时输入什么就是什么。
sys.argv[0]
3. 脚本所在路径
#脚本所在的目录,当脚本路径不可获取时为空字符串。
sys.path[0]
4. 脚本__file__属性
#当前python文件的"路径名",可能是相对路径或者全路径,跟导入解释器的方式有关。属于当前脚本/模块的属性。
#Top脚本一般同sys.argv[0],导入的子模块为完整的路径名
__file__
2. Example
存在以下目录结构:
test文件内容相同如下:
print("path[0] :'"+sys.path[0]+"'")
print("argv[0] :'"+sys.argv[0]+"'")
print("__file__:'"+__file__+"'")
print(" cwd:'"+os.getcwd()+"'")
print("realPath:'"+os.path.split(os.path.realpath(__file__))[0]+"'")
print("realFile:'"+os.path.split(os.path.realpath(__file__))[1]+"'")
1). 调用工作目录root下test1.py