Python中configparser.NoSectionError求助:无法读取Credentials段
解决configparser.NoSectionError问题
以下是针对该错误的具体排查和解决步骤:
确认配置文件路径正确性
脚本运行时的工作目录可能并非脚本所在目录,导致找不到目标配置文件。改用绝对路径读取可以避免这个问题:import configparser import os # 获取脚本所在目录的绝对路径 script_dir = os.path.dirname(os.path.abspath(__file__)) config_path = os.path.join(script_dir, 'config.cfg') config = configparser.ConfigParser() # 检查文件是否成功加载 if not config.read(config_path): raise FileNotFoundError(f"无法加载配置文件: {config_path}") __DBMSuser = config.get('Credentials', 'username') __DBMSpsw = config.get('Credentials', 'password')检查配置文件格式规范
确保配置文件的格式没有问题:- 章节名称(如
[Credentials])前后无多余空格 - 键值对(如
username=myuser)格式规范,等号两侧可保留空格但不要有特殊字符 - 配置文件保存为纯文本格式,避免隐藏的特殊字符(如Windows下的BOM头)
- 章节名称(如
指定配置文件编码读取
若配置文件使用非UTF-8编码保存(如GBK),可能导致读取异常,可显式指定编码:config.read(config_path, encoding='utf-8')验证配置文件加载状态
在读取后打印所有已加载的章节,确认文件是否被正确解析:print(config.sections())如果输出中没有
'Credentials',说明文件未被正确加载,需回到第一步重新检查路径。
内容的提问来源于stack exchange,提问作者Rinfra90
相关产品推荐
相关产品推荐

