其他分享
首页 > 其他分享> > confiparse遇到特殊字符的解析处理

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