天天看點

Python擷取目前腳本檔案夾(Script)的絕對路徑

Python擷取目前腳本絕對路徑

Python腳本有一個毛病,當使用相對路徑時,被另一個不同目錄下的py檔案中導入時,會報找不到對應檔案的問題。感覺是目前工作目錄變成了導入py檔案目前目錄。如果你有配置檔案的讀取操作,然後都放在一個py檔案中,而你又用的是相對路徑,而且這個py檔案在多個不同目錄下的py檔案中被導入,那就呵呵了。。。還是用絕對路徑吧。

解決這個問題,可以用絕對路徑。當然是自動的絕對路徑,而不是每次都手動給字首指派,讓腳本自動尋找目前檔案的絕對路徑。

此處分享在python下擷取一個腳本的絕對路徑的2種方式。

1、__file__變量

'''
遇到問題沒人解答?小編建立了一個Python學習交流QQ群:857662006 
尋找有志同道合的小夥伴,互幫互助,群裡還有不錯的視訊學習教程和PDF電子書!
'''
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()函數了。