先描述一下问题的背景:
1.首先,用pycharm打开了一个python工程
2.python工程里的启动.py文件里定义的函数,有相对路径的操作输出文件
3.在terminal终端用 python 路径/xxx.py 启动工程
接下来是对问题的描述:
函数通过相对路径输出的文件位置不对,比如我通过相对路径 ../../test.txt 想要将test.txt输出到xxx.py文件的上两层目录中,但是文件没有输出到目的目录,而是输出到了其他目录当中。
问题原因:
经过各种尝试,终于定位到了问题出现的原因就是在用 python 路径/xxx.py 命令启动工程时候的工作路径的问题。
举例说明:
比如 我的一个python工程 F:a/b/c/d/e/xx.py ,里边有函数使用相对路径生成文件 ../../test.txt 到上两层目录,打开之后,打开terminal终端,假如此时的工作路径为 (XXX)F:\a\b\c> ,使用命令 python d\e\xxx.py 启动程序,此时,test.txt会生成到a目录下,如果工作路径为(XXX)F:\a\b\c\d\e> ,使用命令 python xxx.py启动程序,test.txt会生成到c目录下。
通过以上两个例子的举例,终于弄明白了,在xxx.py里函数写的相对路径,是相对于当前python工程的工作路径的。