Python ConfigParser库使用指南及Apache部署路径错误排查
本文详细讲解Python ConfigParser库的基本用法,包括write和read方法的操作流程。重点分析了在Apache服务器环境下因相对路径识别问题导致的NoSectionError错误,并提供使用绝对路径读取配置文件的解决方案,帮助开发者避免常见配置读取陷阱。
Python ConfigParser库使用指南及Apache部署路径错误排查
背景:近期在接口测试项目中希望集成logging日志打印功能,在testerHome社区浏览接口框架分享时,注意到有人使用了ConfigParser库。在自行实践过程中遇到了一些问题,特此记录以便后续参考。
首先描述遇到的具体问题:
ConfigParser库主要用于读写配置文件,支持.ini和.conf格式的文件。
我的初始思路是在本地新建.text文本文件,写入配置内容后将其后缀修改为.ini或.conf,再拖入Eclipse中调用read方法读取。但一直报错,我起初误以为是书写逻辑有误。
尝试多次无果后,我删除了手动创建的配置文件,改用write()方法生成文件,再调用read()读取,发现可以成功。当时并未查明具体原因。
第一,先介绍write方法

首先需要实例化ConfigParser类,然后增加section(即标签/区块)。一个section下可以包含多项配置,也可以添加多个section。如图所示为配置文件的截图:

其中[time]和[place]是两个不同的section标签,各标签下的内容以key-value形式表示。这里使用set(section, option, value)方法,section对应标签名,option对应key,value对应具体值。若需多次添加,只需多次调用set()方法即可,所有操作可在同一个section内完成。
第二:书写成功接下来是read

同样先实例化ConfigParser类,然后调用read(filenames)方法。其中参数filenames应为.conf文件的绝对路径(我看到他人示例中只写文件名,但我测试时总是报错,不确定是伪代码还是其他原因,因此建议使用绝对路径以确保稳妥)。
如果想要读取section(即上述标签),可以调用sections()方法,该方法会将配置文件中所有section以列表格式返回,如图所示:

读取具体值时可使用options(section)。由于配置文件中的key通常不会重复,取出后无需再通过列表查找,这样能避免增加复杂度。
大致内容如上。当然还有删除等操作,大家可以查阅ConfigParser的源码或他人博客,相关内容较多,此处不再赘述。我计划近期将logging模块也加入测试,观察效果,后续若有新坑再行补充。
configparser.NoSectionError: No section: '****'
configparser.NoSectionError: No section: '****'解决办法,Apache无法识别相对路径
问题描述
Python使用configparser读取配置文件main.conf,通过python 文件名.py命令启动程序时无报错;但若将程序部署到Apache服务器上,则报错:configparser.NoSectionError: No section: ‘****’

原因
Apache环境下无法正确识别相对路径,需填写绝对路径
解决方案
config.read()读取绝对路径
import configparser
import os, sys
parent_dir = os.path.dirname(os.path.abspath(__file__))
config = configparser.ConfigParser()
config.read(parent_dir + "/main.conf") #读取配置文件采用绝对路径
以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









