背景
python腳本1使用了相對路徑,若是調用該腳本1的腳本2另外位於不一樣目錄時,就會出現路徑錯誤的狀況,緣由是相對路徑會按照腳本2的路徑來匹配相對路徑,這樣就出現了問題。python
解決方法shell
python
代碼以下。__file__返回腳本的名稱,os.path.realpath獲取腳本的絕對路徑,而os.path.split會把文件的路徑和文件名分開,返回一個(路徑, 文件名)的元祖,所以,就能夠獲取到腳本所在路徑了。code
import os.path os.path.split(os.path.realpath(__file__))[0]
shell
代碼以下。 0爲腳本的短名,dirname返回腳本的所在路徑,而後cd進路徑,pwd輸出。之因此在 0和dirname前都加上了雙引號,是爲了防止路徑中有空格之類的字符,獲取路徑會出現錯誤。it
$(cd "$(dirname "$0")"; pwd)