Python如何使用ConfigParser读取配置文件


Posted in Python onNovember 12, 2020

在项目过程中,需要设置各种IP和端口号信息等,如果每次都在源程序中更改会很麻烦(因为每次都要重启项目重新加载配置信息),因此将需要修改的参数写在配置文件(或者数据库)中,每次只需修改配置文件,就可以实现同样的目的。Python 标准库的 ConfigParser 模块提供一套 API 来读取和操作配置文件。因此在程序开始位置要导入该模块,注意区分是python2还是python3,python3有一些改动

import ConfigParser #python 2.x
import configparser #python 3.x

配置文件的格式

  • a) 配置文件中包含一个或多个 section, 每个 section 有自己的 option;
  • b) section 用 [sect_name] 表示,每个option是一个键值对,使用分隔符 = 或 : 隔开;
  • c) 在 option 分隔符两端的空格会被忽略掉
  • d) 配置文件使用 # 和 ; 注释

一个简单的配置文件样例 config.conf

# database source
[db]   # 对应的是一个section
host = 127.0.0.1  # 对应的是一个option键值对形式
port = 3306
user = root
pass = root
 
# ssh
[ssh]
host = 192.168.10.111
user = sean
pass = sean

ConfigParser 的基本操作

a) 实例化 ConfigParser 并加载配置文件

cp = ConfigParser.SafeConfigParser()
cp.read('config.conf')

b) 获取 section 列表、option 键列表和 option 键值元组列表

print('all sections:', cp.sections()) # sections: ['db', 'ssh']
print('options of [db]:', cp.options('db')) # options of [db]: ['host', 'port', 'user', 'pass']
print('items of [ssh]:', cp.items('ssh')) # items of [ssh]: [('host', '192.168.10.111'), ('user', 'sean'), ('pass', 'sean')]

c) 读取指定的配置信息

print('host of db:', cp.get('db', 'host')) # host of db: 127.0.0.1
print('host of ssh:', cp.get('ssh', 'host')) # host of ssh: 192.168.10.111

d) 按类型读取配置信息:getint、 getfloat 和 getboolean

print(type(cp.getint('db', 'port'))) # <type 'int'>

e) 判断 option 是否存在

print(cp.has_option('db', 'host')) # True

f) 设置 option

cp.set('db', 'host','192.168.10.222')

g) 删除 option

cp.remove_option('db', 'host')

h) 判断 section 是否存在

print(cp.has_section('db')) # True

i) 添加 section

cp.add_section('new_sect')

j) 删除 section

cp.remove_section('db')

k) 保存配置,set、 remove_option、 add_section 和 remove_section 等操作并不会修改配置文件,write 方法可以将 ConfigParser 对象的配置写到文件中

cp.write(open('config.conf', 'w'))
cp.write(sys.stdout)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用SAE部署Python运行环境的教程
May 05 Python
Python打造出适合自己的定制化Eclipse IDE
Mar 02 Python
一些Centos Python 生产环境的部署命令(推荐)
May 07 Python
对python中Matplotlib的坐标轴的坐标区间的设定实例讲解
May 25 Python
python 多线程串行和并行的实例
Feb 22 Python
Python button选取本地图片并显示的实例
Jun 13 Python
Python基础学习之函数方法实例详解
Jun 18 Python
Python获取二维数组的行列数的2种方法
Feb 11 Python
Python中使用threading.Event协调线程的运行详解
May 02 Python
解决django框架model中外键不落实到数据库问题
May 20 Python
python实现调用摄像头并拍照发邮箱
Apr 27 Python
Python自动化爬取天眼查数据的实现
Jun 15 Python
Python使用windows设置定时执行脚本
Nov 12 #Python
Django restful framework生成API文档过程详解
Nov 12 #Python
Python通过Schema实现数据验证方式
Nov 12 #Python
Django用户认证系统如何实现自定义
Nov 12 #Python
Django自带用户认证系统使用方法解析
Nov 12 #Python
Django多数据库联用实现方法解析
Nov 12 #Python
Django数据库迁移常见使用方法
Nov 12 #Python
You might like
php intval的测试代码发现问题
2008/07/27 PHP
PHP 强制性文件下载功能的函数代码(任意文件格式)
2010/05/26 PHP
php后台多用户权限组思路与实现程序代码分享
2012/02/13 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
PHP的cURL库简介及使用示例
2015/02/06 PHP
php动态函数调用方法
2015/05/21 PHP
详谈php ip2long 出现负数的原因及解决方法
2017/04/05 PHP
浅谈PHP实现大流量下抢购方案
2017/12/15 PHP
JQuery textlimit 显示用户输入的字符数 限制用户输入的字符数
2009/05/14 Javascript
js href的用法
2010/05/13 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
JavaScript中5种调用函数的方法
2015/03/12 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
jQuery实现复制到粘贴板功能
2017/02/11 Javascript
js实现返回顶部效果
2017/03/10 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
vue实现评论列表功能
2019/10/25 Javascript
基于axios 的responseType类型的设置方法
2019/10/29 Javascript
微信JSSDK实现打开摄像头拍照再将相片保存到服务器
2019/11/15 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
[00:16]热血竞技场
2019/03/06 DOTA
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
2017/06/23 Python
python实现键盘控制鼠标移动
2020/11/27 Python
对python中list的拷贝与numpy的array的拷贝详解
2019/01/29 Python
深入浅析Python 命令行模块 Click
2020/03/11 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
如何利用python检测图片是否包含二维码
2020/10/15 Python
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
如何查找网页漏洞
2016/06/22 面试题
社区安全生产月活动总结
2014/07/05 职场文书
村主任群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
党的群众路线教育实践活动学习笔记范文
2014/11/06 职场文书
2015年度村委会工作总结
2015/04/29 职场文书