对于CWD的理解
python中cwd其实就是current work dir 的意思,就是当前工作目录。当前工作目录并不是你运行的python文件所在的目录就叫做工作目录,而是你在命令行中运行脚本时,命令行显示你所在的目录。
举个例子:我有一个test.py
的文件,它在我的文件系统中位置是/home/hj/fire/detection/yolo/test.py
。
下面是我运行脚本的地址
- 注意,这是我终端显示我所在的地址
/home/hj/fire
和脚本里代码
from pathlib import Path
if __name__=='__main__':
cur=Path.cwd()
print(cur)
下面我执行如下命令:
/home/hj/fire /home/hj/anaconda3/envs/FireDetection/bin/python "/home/hj/fire/detection/yolo/test.py"
解释一下,上面其实就是在/home/hj/fire
下执行python "/home/hj/fire/detection/yolo/test.py "
就是在FireDetection环境下执行python命令而已。
结果显示:
/home/hj/fire
再例如我更换终端所在位置:
/home/hj/fire/detection
此时我再执行脚本,那么输出为:
/home/hj/fire/detection
因此有结论:
- 工作目录不是你的
test.py
文件所在的目录,而是你终端所在的位置! - Path.cwd()获取的位置就是终端所在的位置
如果不了解上述规则的话会出现很多错误!