1. 程式人生 > >ConfigParser.InterpolationSyntaxError: '%' must be followed by '%' or '(', found: "%&'" 解決方案

ConfigParser.InterpolationSyntaxError: '%' must be followed by '%' or '(', found: "%&'" 解決方案

前言

在寫python程式讀取配置檔案的時候,遇到了一個錯誤,記錄下解決方案。

錯誤如下:

ConfigParser.InterpolationSyntaxError: '%' must be followed by '%' or '(', found: "%&'"

程式碼詳情

讀取read_ini.ini時由於我的ini檔案中內容如下:

# 不同ip作為key值,不同命令作為value值
[cmd]
10.10.111.1 = cd $(locate taskmngdomain1/nohuplogs) ; tail -50 *log*`date +%F`*
10.10.111.2 = cd $(locate taskmngdomain2/nohuplogs) ; tail -50 *log*`date +%F`*
import configparser
cf= configparser.ConfigParser()
cf.read('read_ini.ini')
ip_128 = cf.get('cmd','10.10.111.1')

當代碼執行到 ip_128 = cf.get(‘cmd’,‘10.10.111.1’)這行,丟擲了ConfigParser.InterpolationSyntaxError: ‘%’ must be followed by ‘%’ or ‘(’, found: "%&’"的錯誤。 大致意思是,因為ini的內容中包含了%號這種特殊符號。

解決方案

換一種方式進行讀取配置檔案 原本程式碼:cf= configparser.ConfigParser()

替換成: cf = configparser.RawConfigParser()

import configparser
cf = configparser.RawConfigParser()
cf.read('read_ini.ini')
ip_128 = cf.get('cmd','10.10.111.1')

報錯解決!