confiparse遇到特殊字符的解析处理
作者:互联网
一.背景:
confiparse类解析mysql密码时发现包含特殊字符时出现报错的情况:
配置文件如下:
代码如下:
import configparser import os #读取配置 conf=configparser.ConfigParser() # 路径中使用斜杠不要使用反斜杠 path=os.path.abspath( "data.conf" ) # 加载配置文件 conf.read( path) # 读取配置 host=conf.get( "mysql", "host" ) user=conf.get( "mysql", "user" ) password=conf.get( "mysql", "password" ) database=conf.get( "mysql", "database" ) print(password)
查看执行结果,报错如下:
configparser.InterpolationSyntaxError: '%' must be followed by '%' or '(', found: '%#=%ok@yes^?'
二、解决方案:
将代码内:configparser.ConfigParser() 修改为如下语句:
conf=configparser.RawConfigParser()
再次运行结果如下:
主要原因:RawConfigParser是最基础的INI文件读取类,ConfigParser、SafeConfigParser支持对%(value)s变量的解析,所以RawConfigParser不会产品转义的情况。
标签:confiparse,get,RawConfigParser,conf,mysql,path,解析,特殊字符,configparser 来源: https://www.cnblogs.com/mrwhite2020/p/16439048.html