configparser模块的常见用法
configparser模块用于生成与windows.ini文件类似格式的配置文件,可以包含一节或多节(section),每个节可以有一个或多个参数(键=值)
在学习这个模块之前,先来看一个经常见到的配置文档:
[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
forwardx11 = yes
[bitbucket.org]
user = admin
[topsecret.server.com]
port = 1000345
forwardx11 = no
1.创建配置文件
现在来用python中的configparser模块生成一个与上面相同的配置文档
#先导入configparser模块
import configparser
#为其中一个方法定义一个变量
cfp=configparser.ConfigParser()
#定义"DEFAULT"节及其子参数
cfp["DEFAULT"]={"ServerAliveInterval":45,
"Compression":"yes",
"CompressionLevel":9,
"ForwardX11":"yes"
}
#定义“bitbucket.org”节
cfp["bitbucke.ort"]={"USER":"admin"}
#定义"topsecret.server.com"节及其参数
cfp["topsecret.server.com"]={"Port":1000345,"ForwardX11":"no"}
#把上面定义的节及其参数写入"cfp.ini"这个文件
with open("cfp.ini","w") as f:
cfp.write(f)
运行程序后,生成的配置文件如下:
[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
forwardx11 = yes
[bitbucket.org]
user = admin
[topsecret.server.com]
port = 1000345
forwardx11 = no
可以看到,跟文章开始处的配置文件格式一模一样的。
2.读取配置文件中的变量
目标配置文件就已经生成了,那现在想读取一个配置文件里的某个选项,该怎么做呢?
import configparser
cfp=configparser.ConfigParser()
#读取目标配置文件
cfp.read("cfp.ini")
#打印目标配置文件的节
print(cfp.sections())
理论上,读取配置文件的节,所得是一个列表,运行脚本,得到的字段为:
['bitbucket.org', 'topsecret.server.com']
这是因为第一节是“DEFAULT”字段,这个字段是默认对整个配置文件生效的,
所以"DEFAULT"默认是不会显示出来。
如果把配置文件中的“DEFAULT”改成“DEFAULTS”,如下:
[DEFAULTS]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
forwardx11 = yes
[bitbucket.org]
user = admin
[topsecret.server.com]
port = 1000345
forwardx11 = no
然后再用上面的代码来读取整个配置文件的节,结果如下:
['DEFAULTS', 'bitbucket.org', 'topsecret.server.com']
打印“bitbucket.ort”节下所有的键和值
import configparser
cfp=configparser.ConfigParser()
#读取目标配置文件
cfp.read("cfp.ini")
print(cfp.items("bitbucket.org"))
从返回结果可以看到,把"DEFAULT"这个节下面的键和值也一起返回了,正如前面所说的,“DEFAULT”是默认全局生效的
[('serveraliveinterval', '45'), ('compression', 'yes'), ('compressionlevel', '9'), ('forwardx11', 'yes'), ('user', 'admin')]
打印“bitbucket.ort”节下所有的键
import configparser
cfp=configparser.ConfigParser()
#读取目标配置文件
cfp.read("cfp.ini")
print(cfp.options("bitbucket.org"))
结果同上面一样,"DEFAULT"下面的键也被一起返回了
['user', 'serveraliveinterval', 'compression', 'compressionlevel', 'forwardx11']
3.测试配置文件中的键和值
1.测试某个选项是否在配置文件中,可以使用如下方法:
import configparser
cfp=configparser.ConfigParser()
#读取目标配置文件
cfp.read("cfp.ini")
print("topsecret.server.com" in cfp)
得到的结果为:
True
2.测试某个节下面是否有某个键
import configparser
cfp=configparser.ConfigParser()
#读取目标配置文件
cfp.read("cfp.ini")
print(cfp.get("bitbucket.org","compression"))
返回如下:
yes
4.修改配置文件
1.向配置文件里添加一个键值对
代码如下:
import configparser
cfp=configparser.ConfigParser()
#打开目标配置文件
cfp.read("cfp.ini")
#添加节
cfp.add_section("conf")
#为添加的节设置键和值
cfp["conf"]["group"]="group01"
#把修改写入配置文件
cfp.write(open("cfp.ini","w"))
添加后的文件如下:
[DEFAULTS]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
forwardx11 = yes
[bitbucket.org]
user = admin
[topsecret.server.com]
port = 1000345
forwardx11 = no
[conf]
group = group01
可以看到已经增加一个“conf”的节,“conf”节下面增加一个值为“group01”的键“group”
2.删除配置文件的节及其对就的键和值
import configparser
cfp=configparser.ConfigParser()
#读取目标配置文件
cfp.read("cfp.ini")
#从“topsecret.server.com”节中删除
cfp.remove_option("topsecret.server.com","forwardx11")
cfp.write(open("cfp.ini","w"))
返回结果如下:
[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
forwardx11 = yes
[bitbucket.org]
user = admin
[topsecret.server.com]
port = 1000345
可以看到"forwardx11"这个键值对已经从"topsecret.server.com"这个节中删除掉了。
3.为某个键设置值:
代码如下:
import configparser
cfp=configparser.ConfigParser()
#读取目标配置文件
cfp.read("cfp.ini")
#为"topsecret.server.com"节添加一个"k1"键,其值为“v1”
cfp.set("topsecret.server.com","k1","v1")
#为“conf”节添加一个"k100"键,其值为"v100"
cfp.set("conf","k100","v100")
cfp.write(open("cfp.ini","w"))
print(cfp.sections())
返回结果为:
[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
forwardx11 = yes
[bitbucker.ort]
user = admin
[topsecret.server.com]
port = 1000345
forwardx11 = no
k1 = v1
[conf]
group = group01
k100 = v100
configparser模块的常见用法的更多相关文章
- python中os模块和sys模块的常见用法
OS模块的常见用法 os.remove() 删除文件 os.rename() 重命名文件 os.walk() 生成目录树下的所有文件名 os.chdir() 改变目录 os.mkd ...
- 19.python中os模块的常见用法
常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows,它是'nt', 而对于Linux/Unix用户,它是'posix'. os. ...
- 小白的Python之路 day5 configparser模块的特点和用法
configparser模块的特点和用法 一.概述 主要用于生成和修改常见配置文件,当前模块的名称在 python 3.x 版本中变更为 configparser.在python2.x版本中为Conf ...
- python之模块pprint之常见用法
# -*- coding: cp936 -*- #python 27 #xiaodeng #python之模块pprint之常见用法 import pprint data = [(1,{'a':'A' ...
- python之模块poplib之常见用法
# -*- coding: cp936 -*- #python 27 #xiaodeng #python之模块poplib之常见用法 ''' 所以,收取邮件分两步: 第一步:用poplib把邮件的原始 ...
- 【python库模块】Python subprocess模块功能与常见用法实例详解
前言 这篇文章主要介绍了Python subprocess模块功能与常见用法,结合实例形式详细分析了subprocess模块功能.常用函数相关使用技巧. 参考 1. Python subprocess ...
- ES模块的基本用法常见使用问题
本文作者:高峰,360奇舞团前端工程师,W3C WoT工作组成员. ES6中引入了模块(Modules)的概念,相信大家都已经挺熟悉的了,在日常的工作中应该也都有使用. 本文会简单介绍一下ES模块的优 ...
- 模块二 hashlib模块、configparser模块、logging模块
算法介绍 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常 ...
- (转)python的ConfigParser模块
原文:https://blog.csdn.net/miner_k/article/details/77857292 如何使用Python3读写INI配置文件-------https://blog.cs ...
随机推荐
- PostgreSQL=>递归查询
PostgreSQL=>递归查询 转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/8232073.html 距上次博客更新刚好两周,这两周发生了很多,比如: ...
- CommonJS,AMD,RequireJS的区别
RequireJS实现了AMD的API. CommonJS是使用exports对象来定义模块的一种方法,它定义了模块的内容.简单地实现一个CommonJS的定义就像下面这样: // someModul ...
- CodeForces 543D:Road Improvement
题目:http://codeforces.com/problemset/problem/543/D 题意:给你一棵树,一开始边都是0,可以使任意的边变成1,对于每一个根节点求使得它到其他任一点的路径上 ...
- Tp框架查询分页显示与全部查询出来显示运行时间快慢有区别吗?
8:08:01 青春阳光 2017/4/7 8:08:01 大神在吗? Tp框架查询分页显示与全部查询出来显示运行时间快慢有区别吗? 青春阳光 2017/4/7 8:08:20 还有个问题,上传到pu ...
- CGI,FAST-CGI,PHP-FPM的区别
http://blog.csdn.net/xsgnzb/article/details/52875331 CGI全称Common Gateway Interface即公共网关接口,它遵循cgi规范,定 ...
- 如何从Android工程导出apk安装包
http://jingyan.baidu.com/article/1876c852b3208b890b137606.html
- 三续ASM
在ASM的Core API中使用的是访问者模式来实现对类的操作,主要包含如下类: 一.ClassVisitor接口: 在这个接口中主要提供了和类结构同名的一些方法,这些方法可以对相应的类结构进行操作. ...
- 一简单的RPC实例(Java)
来至于阿里liangf:如有冒犯,请原谅 RPCFrameWork: package com.sunchao.demo; import java.io.IOException; import java ...
- 修真院java后端工程师学习课程--任务1(day four)
今天学习的是spring框架,内容主要有: spring的概念,主要是做什么的: Spring是一个基于IOC和AOP的结构J2EE系统的框架 IOC 反转控制 是Spring的基础,Inversio ...
- 反应堆模式(reactor)
在提到高性能服务器编程的时候肯定有听过reactor模式,如果只是简单的写一个服务器和客户端建立连接的程序来熟悉一下使用socket函数编程,一般这种情况都是同步方式实现的,服务器阻塞等待客户端的连接 ...