Python读取config.ini出现KeyError: 'FILEPATH'的原因咨询
问题分析与解决
出现KeyError: 'FILEPATH'的核心原因是ConfigParser根本没成功读取到你的config.ini文件,所以找不到对应的配置节点。以下是具体排查和解决步骤:
1. 路径拼接错误(最可能的原因)
你的代码里路径拼接后生成的是:
root_drive = r'P:\scripts\\' # 拼接后路径:P:\scripts\\Scripts\config.ini config_object.read(root_drive+'Scripts\config.ini')
但根据你config.ini里的配置(比如input = P:\scripts\Input),config.ini应该直接放在P:\scripts\目录下,而不是P:\scripts\Scripts\子目录里。这就导致ConfigParser找不到文件,自然读不到任何配置。
修正方法:
直接用正确路径指向config.ini:
# 方法1:硬编码正确路径 config_object.read(r'P:\scripts\config.ini') # 方法2:修正路径拼接逻辑 root_drive = r'P:\scripts\' config_object.read(root_drive + 'config.ini')
2. 路径转义问题
路径字符串里的反斜杠如果不用raw字符串标记(r''),可能被Python解析为转义字符(比如\c可能被错误解析)。确保所有路径字符串都用raw字符串,或者改用正斜杠(Windows系统也支持正斜杠路径):
config_object.read('P:/scripts/config.ini')
3. 验证文件是否被成功读取
ConfigParser的read()方法找不到文件时不会抛出错误,只会返回空列表。可以添加校验代码确认:
files_read = config_object.read(r'P:\scripts\config.ini') if not files_read: raise FileNotFoundError("config.ini文件未找到或无法读取")
修正后的完整代码示例
import configparser import datetime # 初始化配置解析器 config_object = configparser.ConfigParser() # 读取正确路径下的配置文件 files_read = config_object.read(r'P:\scripts\config.ini') if not files_read: raise FileNotFoundError("无法找到或读取config.ini文件") filepath = config_object["FILEPATH"] # 设置输出文件路径 s = datetime.datetime.now() out_file = filepath["output"] + r'\Final Output File for ' + s.strftime('%Y-%m-%d %H%M%S') + '.xlsx' log_file = filepath["processlog"] + r'\LogFile_{0}.log'.format(s.strftime('%Y-%m-%d %H%M%S'))
内容的提问来源于stack exchange,提问作者Shweta Dalal
相关产品推荐
相关产品推荐

