python ConfigParser库的使用及遇到的坑


Posted in Python onFebruary 12, 2022

ConfigParser库的使用及遇到的坑

背景:这几天想在接口测试中增加logging打印功能,在testerHome正好发现有人分享自己的接口框架,看了之后其中用到ConfigParser,然后自己写了遇到一个坑,写下来用于备注吧。

首先就描述一下坑:

ConfigParser主要就是读写配置文件,文件格式包括.ini,.conf。

我是这么想的在本地新建.text文本格式,把配置书写进去然后修改成.ini或者.conf拖拽进eclispe中,然后read配置文件,一直报错,我一直都以为书写逻辑有问题。

实在没办法就删除配置文件,使用write()去写,然后read发现可以,一直不知道是什么原因。

第一,先介绍write方法

python ConfigParser库的使用及遇到的坑

首先是先实例化ConfigParser()这个类,然后增加section,我把理解一个标签,在这个标签下什么东西,当然可以添加多个标签,如图就是配置文件的截图:

python ConfigParser库的使用及遇到的坑

其中[time]和[place]就是2个不同的标签,其中各个标签下的内容用类似key-value的形式表示,这里就用到set(section,option,value)方法,section对应的就是标签,option对应就是key,value就是key对应的值。如果想多次多次只要多次调用set()方法即可,使用是一个section就可以。

第二:书写成功下面就是read

python ConfigParser库的使用及遇到的坑

同样也是先实例化ConfigParser()这个类,然后调用read(filenames)方法其中参数filenames是.conf的绝对路径(我看别人都只有文件名,我试了一下总是报错,不知道是伪代码还是什么,我还是觉得用绝对路径稳妥一些)。

如果想要读取section(就是我上面说的标签)就是用调用sections()就是把配置文件所有section用列表格式返回,如图:

python ConfigParser库的使用及遇到的坑

读取值就使用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: ‘****’

python ConfigParser库的使用及遇到的坑

原因

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")   #读取配置文件采用绝对路径

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python-基础-入门 简介
Aug 09 Python
python实现从一组颜色中找出与给定颜色最接近颜色的方法
Mar 19 Python
Python标准库defaultdict模块使用示例
Apr 28 Python
Python使用urllib2模块抓取HTML页面资源的实例分享
May 03 Python
python导出hive数据表的schema实例代码
Jan 22 Python
python实现播放音频和录音功能示例代码
Dec 30 Python
python的scipy实现插值的示例代码
Nov 12 Python
opencv设置采集视频分辨率方式
Dec 10 Python
Django ORM filter() 的运用详解
May 14 Python
Python StringIO及BytesIO包使用方法解析
Jun 15 Python
详解Python IO口多路复用
Jun 17 Python
python中如何打包用户自定义模块
Sep 23 Python
Python制作春联的示例代码
Jan 22 #Python
Python制作表白爱心合集
基于Python实现一个春节倒计时脚本
Jan 22 #Python
详解Python如何批量采集京东商品数据流程
Jan 22 #Python
用Python实现屏幕截图详解
Jan 22 #Python
Python实现学生管理系统并生成exe可执行文件详解流程
Jan 22 #Python
django中websocket的具体使用
Jan 22 #Python
You might like
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
PHP函数in_array()使用详解
2014/08/20 PHP
php实现的SESSION类
2014/12/02 PHP
PHP new static 和 new self详解
2017/02/19 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
2019/09/05 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
JQuery 1.6发布 性能提升,同时包含大量破坏性变更
2011/05/10 Javascript
jQuery $.data()方法使用注意细节
2012/12/31 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
AngularJS HTML编译器介绍
2014/12/06 Javascript
javascript 闭包详解
2015/02/15 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
微信小程序 聊天室简单实现
2017/04/19 Javascript
让nodeJS支持ES6的词法----babel的安装和使用方法
2017/07/31 NodeJs
微信小程序scroll-view锚点链接滚动跳转功能
2019/12/12 Javascript
使用js获取身份证年龄的示例代码
2020/12/11 Javascript
jQuery冲突问题解决方法
2021/01/19 jQuery
[52:27]2018DOTA2亚洲邀请赛 3.31 小组赛B组 paiN vs Secret
2018/04/01 DOTA
[00:12]DAC2018 天才少年转战三号位,他的SOLO是否仍如昔日般强大?
2018/04/06 DOTA
python中global与nonlocal比较
2014/11/21 Python
Python学习之Django的管理界面代码示例
2018/02/10 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
Python3.5 处理文本txt,删除不需要的行方法
2018/12/10 Python
pandas read_excel()和to_excel()函数解析
2019/09/19 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
python是怎么被发明的
2020/06/15 Python
详解python命令提示符窗口下如何运行python脚本
2020/09/11 Python
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
日本最大的眼镜购物网站:Oh My Glasses
2016/11/13 全球购物
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
2014财产信托协议书范本
2014/11/18 职场文书
宇宙与人观后感
2015/06/05 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏