You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在INI文件中使用‘#’字符?Python Configparser连接MSSQL密码难题

处理ConfigParser读取含#的MSSQL密码问题

核心问题原因

ConfigParser默认会将INI文件中行内未被引号包裹的#之后内容当作注释截断,导致密码读取不完整。以下是几种无需修改密码的解决方法:

方法1:用引号包裹INI中的密码

直接在INI文件里给密码加上双引号或单引号,ConfigParser会解析引号内的完整内容(包括#):

[mssql_db]
server=127.0.0.1
database=target_db
username=admin
password="P@ss#Word123"

读取代码:

from configparser import ConfigParser

cfg = ConfigParser()
cfg.read('db_config.ini')
db_password = cfg.get('mssql_db', 'password')
# 输出结果:P@ss#Word123(自动去除包裹的引号)

方法2:禁用插值功能初始化ConfigParser

如果不想修改INI文件格式,初始化ConfigParser时指定interpolation=None,即可避免行内#被当作注释截断:

[mssql_db]
server=127.0.0.1
database=target_db
username=admin
password=P@ss#Word123

读取代码:

from configparser import ConfigParser

# 禁用插值,保留值中的所有字符
cfg = ConfigParser(interpolation=None)
cfg.read('db_config.ini')
db_password = cfg.get('mssql_db', 'password')
# 输出结果:P@ss#Word123

方法3:使用RawConfigParser(兼容旧Python版本)

针对Python3.2及更早版本,RawConfigParser不会处理值内的特殊字符,直接读取完整内容:

from configparser import RawConfigParser

cfg = RawConfigParser()
cfg.read('db_config.ini')
db_password = cfg.get('mssql_db', 'password')

内容的提问来源于stack exchange,提问作者jhseo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 21:25:24