Python獲取當前腳本絕對路徑
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()函數了。
出處:https://blog.csdn.net/junbujianwpl/article/details/75332141
