Python如何使用ConfigParser读取配置文件
作者:迎风而来 发布时间:2023-11-03 03:05:30
在项目过程中,需要设置各种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)
来源:https://www.cnblogs.com/sui776265233/p/13299490.html


猜你喜欢
- 当Python中用到双重for循环设计的时候我一般会使用循环的嵌套,但是在Python中其实还存在另一种技巧——for复合语句。简单写一个小
- 最近一个小项目需要一个星级评分的效果,所以去淘宝偷了一个,但是还得加载YUI很不爽,还是自己动手写一个吧~HTML: <!-
- Go语言在进行文件操作的时候,可以有多种方法。最常见的比如直接对文件本身进行Read和Write; 除此之外,还可以使用bufio库的流式处
- 本文实例讲述了Python利用Scrapy框架爬取豆瓣电影。分享给大家供大家参考,具体如下:1、概念Scrapy是一个为了爬取网站数据,提取
- 一、模拟登录图书馆管理系统我们可以先看一下登录页面(很多学校这些管理系统页面就是很low):两种方式去模拟登录图书馆:1. 构造登录表单进行
- 准备工作1.安装scrapy_redis包,打开cmd工具,执行命令pip install scrapy_redis2.准备好一个没有BUG
- 用法熟悉 Golang 的朋友对于 json 和 struct 之间的转换一定不陌生,为了将代码中的结构体与 json 数据解耦,通常我们会
- 01 创建不可见列创建不可见列:CREATE TABLE `t2` ( `id`&nbs
- watch除了可以监听数据的变化,路由的变化也能被其监听到效果如下:具体代码当路由发生变化后,在watch中写具体的业务逻辑let vm =
- 本文实例讲述了php实现的一段简单概率相关代码。分享给大家供大家参考,具体如下:<?phpfor($i=1;$i<100000;
- 引言除非您正在对服务进行原型设计,否则您可能会关心应用程序的内存使用情况。内存占用更小,基础设施成本降低,扩展变得更容易/延迟。尽管 Go
- 一. torch.cat()函数解析1. 函数说明1.1 官网:torch.cat(),函数定义及参数说明如下图所示:1.2 函数功能函数将
- 通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割
- 前段时间开始学习JSON在ASP中的使用,JSON确实比XML方便。以前在写程序的时候有考虑使用XML来存储数据,但是一直觉得生成文档及文档
- .sh脚本可以自动运行多次实验。Windows系统下实现pycharm运行.sh文件1、安装GitGit官网下载或者点击这里下载默认设置安装
- 摘要在Nginx和uWSGI还没配置时,单独在url.py使用apscheduler设置定时任务,使用python manage.py ru
- 前言这节课很重要。。界面整洁美观与否就看布局了。。这里讲布局方法,至于设计的天赋与最终界面的美感那就看造化了。。本文主要讲述Qt Desig
- 用 DATE_FORMAT 来格式化日期字段SELECT DATE_FORMAT(crt_time,'%Y-%m-%d')
- 如下所示:#获取一个值在某个区间的指定倍数的值方法#1# print([i for i in range(1,101) if i%5==0]
- 一、Monkey测试简介Monkey测试是Android平台自动化测试的一种手段,通过Monkey程序模拟用户触摸屏幕、滑动Trackbal