Python 工作目录和脚本所在目录

901 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

 结论: 

#获取当前python文件所在目录:
os.path.split(os.path.realpath(__file__))[0]

#获取工作目录:
os.getcwd()

一个程序启动时涉及两个目录,一个是工作目录(调用者所在目录),另外一个是被执行文件的所在目录。这两个目录可能不一致。

1.路径和文件名信息

当启动一个python脚本时,python解释器继承工作目录,并搜索启动脚本文件。

工作目录和脚本名在调用时已经提供,可以直接记录。使用这两个信息可以获得各文件的绝对路径。

  1. 工作目录
#python解释器工作目录
getcwd()

  1. 脚本名 
#脚本路径, 调用脚本时输入什么就是什么。
os.argv[0]

  1. 脚本所在路径 
#脚本所在的目录,当脚本路径不可获取时为空字符串。
os.sys[0]

  1. 脚本__file__属性 
#当前python文件的"路径名",可能是相对路径或者全路径,跟导入解释器的方式有关。属于当前脚本/模块的属性。
__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

 ​编辑

 2). 调用工作目录root下子目录中的test2.py

​编辑

 3). 在test1.py中导入test2.py

​编辑