Python 配置文件 ConfigParser 模块
本文转至 [余子越的博客](http://www.yuchaoshui.com/) ,文章 [Python 配置文件 ConfigParser 模块](http://www.yuchaoshui.com/post/Python-ConfigParser),欢迎访问[yuchaoshui.com](http://yuchaoshui.com) 了解更多信息!
将程序的配置写到一个统一的配置文件时一个好的做法,ConfigParser 模块给出了很好的方法。
a) 配置文件中包含一个或多个 section, 每个 section 有自己的 option;
b) section 用 [sect_name] 表示,每个option是一个键值对,使用分隔符 = 或 : 隔开;
c) 在 option 分隔符两端的空格会被忽略掉
d) 配置文件使用 # 或者 ; 注释
一、配置文件例子
# database source
[db]
host = 127.0.0.1
port = 3306
user = root
pass = root
# ssh
[ssh]
host = 192.168.1.101
user = huey
pass = huey
二、主程序文件
# python3 中模块
import configparser
cp = configparser.ConfigParser()
# python2 中模块
import ConfigParser
cp = ConfigParser.SafeConfigParser()
cp.read('./etc/server.conf')
三、主要配置及使用方法
cp = configparser.ConfigParser(allow_no_value = True)
# allow_no_value 默认设置成 False,此时如果配置文件中存在没有设置值的option,在读取配置文件时将抛出异常 ConfigParser.ParsingError。
# allow_no_value 设置成 True 时,如果一个 option 没有设置值,has_option 方法会返回 True,get 方法会返回 None。
cp.sections()
# 获取所有区块的列表 ['db', 'ssh']
cp.options('db')
# 获取指定区块的所有选项key ['host', 'port', 'user', 'pass']
cp.items('ssh')
# 获取指定区块的键值对 [('host', '192.168.1.101'), ('user', 'huey'), ('pass', 'huey')]
cp.get('db', 'host')
# 读取指定的配置项内容 '127.0.0.1'
cp.getint('db', 'port')
# 获取指定类型的值,如果类型不符合则会报错。包括 getint、 getfloat 和 getboolean
cp.has_section('db')
# 判断是否有db区块,有则返回True。
cp.has_option('db', 'host')
# 判断db区块是否有host选项,有则返回True。
cp.add_section('hadoop')
# 添加 section
cp.remove_section('db')
# 删除 section
cp.set('db', 'host','192.168.1.122')
# 设置选项的值,但是section必须存在。
cp.remove_option('db', 'host')
# 删除选项
cp.write(open('./etc/myapp.conf', 'w'))
# 写入文件
cp.write(sys.stdout)
# 向屏幕打印配置文件信息
# 这些操作set、 remove_option、 add_section 和 remove_section 并不会修改配置文件,write 方法可以将 ConfigParser 对象的配置写到文件中
[DEFAULT]
# 默认选项,必须是大写。当某一区块 [server] 没有某一个选项时,而在 [DEFAULT] 里面有这个选项,那么当从 [server] 获取不存在的一个选项时,该值会从 [DEFAULT] 区块里面读取。
本文转至 [余子越的博客](http://www.yuchaoshui.com/) ,文章 [Python 配置文件 ConfigParser 模块](http://www.yuchaoshui.com/post/Python-ConfigParser),欢迎访问[yuchaoshui.com](http://yuchaoshui.com) 了解更多信息!
Python 配置文件 ConfigParser 模块的更多相关文章
- python 配置文件 ConfigParser模块
ConfigParser模块 用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser. 来看一个好多软件的常见文档格式如下 [DEFAULT] Se ...
- python中confIgparser模块学习
python中configparser模块学习 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section ...
- Python中ConfigParser模块应用
Python中ConfigParser模块应用 Python的ConfigParser模块定义了3个对INI文件进行操作的类 RawConfigParser.ConfigParser和SafeConf ...
- python中configparser模块读取ini文件
python中configparser模块读取ini文件 ConfigParser模块在python中用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(se ...
- python 的ConfigParser模块
Python 之ConfigParser模块 一.ConfigParser简介 ConfigParser 是用来读取配置文件的包.配置文件的格式如下:中括号“[ ]”内包含的为section.sect ...
- python封装configparser模块获取conf.ini值(优化版)
昨天晚上封装了configparser模块,是根据keyname获取的value.python封装configparser模块获取conf.ini值 我原本是想通过config.ini文件中的sect ...
- Python自动化测试 -ConfigParser模块读写配置文件
C#之所以容易让人感兴趣,是因为安装完Visual Studio, 就可以很简单的直接写程序了,不需要做如何配置. 对新手来说,这是非常好的“初体验”, 会激发初学者的自信和兴趣. 而有些语言的开发环 ...
- Python操作配置文件configparser模块
在实际的开发过程中,我们常有操作ini格式和conf格式配置文件的操作,Python为我们提供了configparser模块,方便我们对配置文件进行读写操作. config.ini配置文件内容如下: ...
- Python使用ConfigParser模块读取配置文件(config.ini)以及写入配置文件
前言 使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是configParser.configPars ...
- python中configparser模块的使用
configparser模块用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser. 首先要写一个如下所示的配置文件: [DEFAULT] serv ...
随机推荐
- 鸿蒙版《智慧农业APP》通过华为云IoT平台实现软件硬件互联
一.原理图 本篇不涉及硬件相关的功能开发,硬件设备使用MQTT客户端模拟,如果有硬件相关经验的可以直接使用真实硬件代替MQTT客户端. 1.华为云物联网服务器 华为云物联网平台是硬件设备端跟移动APP ...
- python里的简洁操作
1.lambda匿名函数好处 精简代码,lambda省去了定义函数,map省去了写for循环过程:res=list(map(lambda x:'test' if x=='' else x,a))
- MySQL 把查询结果更新或者插入到新表
摘要:在MySQL数据库,把查询到的多条记录复制到另一张表中.复制通常包括两种场景,一种是使用update命令更新旧数据,另一种是使用insert命令插入新记录. 需求背景:在某些业务中,需要把查询到 ...
- @FeignClient注解配置局部超时时间、OkHttp长连接和SocketTimeoutException异常解决办法
问题描述:open feign配置OKhttp调用远程API,连续调用次数较少时,一切正常,次数非常多时(例如,连续请求600次)就抛出java.net.SocketTimeoutException: ...
- Tomcat基础学习
Tomcat简介 Tomcat是一个轻量级的web服务器,也称为web容器,servlet容器.(web服务器可以封装http协议,简化开发.还可以将web项目部署到服务器上,对外提供网上浏览.) T ...
- 前/后向自动微分的简单推导与rust简单实现
自动微分不同于数值微分与符号微分, 能够在保证速度的情况下实现高精度的求某个可微函数的定点微分值. 下面将简要介绍其原理, 并给出 rust 的两种微分方式的基本实现. 微分方法简介 数值微分 利用微 ...
- 数栈干货分享!babel-plugin-import最全源码详解
本文将带领大家解析babel-plugin-import 实现按需加载的完整流程,解开业界所认可 babel 插件的面纱. 首先供上babel-plugin-import插件 一.初见萌芽 首先 ...
- Qt+OPC开发笔记(三):OPC客户端订阅特点消息的Demo
前言 本篇介绍opc客户端订阅消息,实现一个opc事件的订阅,当订阅的数据在服务器发生变化是,客户端能立即得到更新. Demo OPC客户端 OPC 客户端是一种利用OPC(OL ...
- 对称分组加密—DES算法原理
目录 一些基础概念 时序图 步骤拆分 Reference 本文只关注一个核心任务 -- 如何把 64 位的明文,用 64 位的密钥,加密成 64 位的密文,并执行解密,需要理解这个过程. DES已经很 ...
- mysql索引优化解决方案
mysql索引优化解决方案(在b站动力节点学习的) 可能因为这个视频是比较新的视频,评论区都没有什么笔记和文档.于是我就跟着视频边学边记录笔记.希望有些建表的代码,有需要的可以直接复制,减少了大家的无 ...