Python獲取當前指令碼資料夾(Script)的絕對路徑方法程式碼
阿新 • • 發佈:2020-01-09
Python指令碼有一個毛病,當使用相對路徑時,被另一個不同目錄下的py檔案中匯入時,會報找不到對應檔案的問題。感覺是當前工作目錄變成了匯入py檔案當前目錄。如果你有配置檔案的讀取操作,然後都放在一個py檔案中,而你又用的是相對路徑,而且這個py檔案在多個不同目錄下的py檔案中被匯入,那就呵呵了。。。還是用絕對路徑吧。
解決這個問題,可以用絕對路徑。當然是自動的絕對路徑,而不是每次都手動給字首賦值,讓指令碼自動尋找當前檔案的絕對路徑。
此處分享在python下獲取一個指令碼的絕對路徑的2種方式。
1、__file__變數
abs_file=__file__ print("abs path is %s" %(__file__)) abs_dir=abs_file[:abs_file.rfind("\\")] # windows下用\\分隔路徑,linux下用/分隔路徑
簡單直接,當前py檔案的絕對目錄就有了。首推此方式。
2、os+sys
import os import sys print("abs path is %s" %(os.path.abspath(sys.argv[0])))
在windows下sys.argv[0]直接取出的就是引數,如果執行命令傳參用的是絕對路徑取出的就是帶絕對路徑,如果傳參用的是相對路徑,就用得上前面的os.path.abspath()函數了。
以上就是全部例項內容,感謝大家的閱讀和對我們的支援。