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() 修改为如下语句:
1 | conf=configparser.RawConfigParser() |
再次运行结果如下:
主要原因:RawConfigParser是最基础的INI文件读取类,ConfigParser、SafeConfigParser支持对%(value)s变量的解析,所以RawConfigParser不会产品转义的情况。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了