configparser跨目錄匯入失敗解決辦法
阿新 • • 發佈:2018-12-17
如果你的目錄結構是類似於上圖那樣的,而你的讀取檔案的結構是如下程式碼樣式
cfp = configparser.ConfigParser()
cfp.read('config.ini','utf-8')
上圖,three是我對讀取檔案中的某個值做了一層封裝,程式碼如下:
import configparser,os cfp = configparser.ConfigParser() cfp.read('config.ini','utf-8') def get_individual(): baseurl = cfp.get('INDIVIDUAL','baseurl') return baseurl
然後,我會到four這個py檔案下進行呼叫get_individual這個方法,程式碼如下:
from aa import three
aa = three.get_individual()
print(aa)
這時候你執行four.py檔案,必回報錯,如下圖: --------重點分割線-------- 出現上述錯誤的原因,讀取檔案路徑有問題(前提:你的from…import是沒錯的),你只需要把讀取檔案那裡改成絕對路徑就行了(我自己是這麼理解的。。。),程式碼如下:
path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))+'\\aa\\config.ini' cfp = configparser.ConfigParser() cfp.read(path,'utf-8')
再次執行,就可以成功讀取檔案了。
可以參考這個寫的更詳細http://www.cnblogs.com/benpao1314/p/9759096.html