1. 程式人生 > 程式設計 >Python獲取當前指令碼資料夾(Script)的絕對路徑方法程式碼

Python獲取當前指令碼資料夾(Script)的絕對路徑方法程式碼

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()函數了。

以上就是全部例項內容,感謝大家的閱讀和對我們的支援。