先描述一下問題的背景:
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工程的工作路徑的。