python中configparser详解_Python中的ConfigParser模块使用详解

1.基本的读取配置文件

-read(filename) 直接读取ini文件内容

-sections() 得到所有的section,并以列表的形式返回

-options(section) 得到该section的所有option

-items(section) 得到该section的所有键值对

-get(section,option) 得到section中option的值,返回为string类型

-getint(section,option) 得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat() 函数。

2.基本的写入配置文件

-add_section(section) 添加一个新的section

-set( section, option, value) 对section中的option进行设置,需要调用write将内容写入配置文件。

3.基本例子

test.conf

[sec_a]

a_key1 = 20

a_key2 = 10

[sec_b]

b_key1 = 121

b_key2 = b_value2

b_key3 = $r

b_key4 = 127.0.0.1

parse_test_conf.py

import ConfigParser

cf = ConfigParser.ConfigParser()

#read config

cf.read("test.conf")

# return all section

secs = cf.sections()

print 'sections:', secs

opts = cf.options("sec_a")

print 'options:', opts

kvs = cf.items("sec_a")

print 'sec_a:', kvs

#read by type

str_val = cf.get("sec_a", "a_key1")

int_val = cf.getint("sec_a", "a_key2")

print "value for sec_a's a_key1:", str_val

print "value for sec_a's a_key2:", int_val

#write config

#update value

cf.set("sec_b", "b_key3", "new-$r")

#set a new value

cf.set("sec_b", "b_newkey", "new-value")

#create a new section

cf.add_section('a_new_section')

cf.set('a_new_section', 'new_key', 'new_value')

#write back to configure file

cf.write(open("test.conf", "w"))

得到终端输出:

sections: ['sec_b', 'sec_a']

options: ['a_key1', 'a_key2']

sec_a: [('a_key1', "i'm value"), ('a_key2', '22')]

value for sec_a's a_key1: i'm value

value for sec_a's a_key2: 22

更新后的test.conf

[sec_b]

b_newkey = new-value

b_key4 = 127.0.0.1

b_key1 = 121

b_key2 = b_value2

b_key3 = new-$r

[sec_a]

a_key1 = i'm value

a_key2 = 22

[a_new_section]

new_key = new_value

4.Python的ConfigParser Module中定义了3个类对INI文件进行操作。分别是RawConfigParser、ConfigParser、SafeConfigParser。RawCnfigParser是最基础的INI文件读取类,ConfigParser、SafeConfigParser支持对%(value)s变量的解析。

设定配置文件test2.conf

[portal]

url = http://%(host)s:%(port)s/Portal

host = localhost

port = 8080

使用RawConfigParser:

import ConfigParser

cf = ConfigParser.RawConfigParser()

print "use RawConfigParser() read"

cf.read("test2.conf")

print cf.get("portal", "url")

print "use RawConfigParser() write"

cf.set("portal", "url2", "%(host)s:%(port)s")

print cf.get("portal", "url2")

得到终端输出:

use RawConfigParser() read

http://%(host)s:%(port)s/Portal

use RawConfigParser() write

%(host)s:%(port)s

改用ConfigParser:

import ConfigParser

cf = ConfigParser.ConfigParser()

print "use ConfigParser() read"

cf.read("test2.conf")

print cf.get("portal", "url")

print "use ConfigParser() write"

cf.set("portal", "url2", "%(host)s:%(port)s")

print cf.get("portal", "url2")

得到终端输出:

use ConfigParser() read

http://localhost:8080/Portal

use ConfigParser() write

localhost:8080

改用SafeConfigParser:

import ConfigParser

cf = ConfigParser.SafeConfigParser()

print "use SafeConfigParser() read"

cf.read("test2.conf")

print cf.get("portal", "url")

print "use SateConfigParser() write"

cf.set("portal", "url2", "%(host)s:%(port)s")

print cf.get("portal", "url2")

得到终端输出(效果同ConfigParser):

use SafeConfigParser() read

http://localhost:8080/Portal

use SateConfigParser() write

localhost:8080

本文标题: Python中的ConfigParser模块使用详解

本文地址: http://www.cppcns.com/jiaoben/python/123999.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261713.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于ubuntu无法启动nginx的问题

在ubuntu13.04上使用apt方式安装nginx发现无法启动nginx,也不报错 查看nginx运行状态,显示未启动 搜索无果,想起了原来的遇到的一个问题,那时候是安装了nginx和lighthttpd服务器,导致nginx无法启动的情况,提…

MVC中validateRequest=false不起作用

MVC Request.QueryString 客户端 潜在危险 在MVC中如果传递xml等参数时,会报“从客户端中检测到有潜在危险的Request.QueryString值”的错误,无法提交参数,在web.Config的Pages节点或者aspx页面中添加validateRequest"false"貌似不…

C语言之基本算法32—鞍点

//数组/*题目:求随意矩阵的全部鞍点。并统计个数。(在矩阵中,一个数在所在行中是最大值, 在所在列中是最小值。则被称为鞍点。) 如: 1 2 34 5 6 7 8 9 当中,a[1][3]3是该矩阵唯一的…

django python3.6_Django+mysql+python3.6.5 Windows

1.下载py365https://www.python.org/downloads/windows/(原来有2.7.x版本 直接修改环境变量即可,需要多个python环境可以使用pyevn)2.安装mysql2.1下载https://dev.mysql.com/downloads/mysql/5.7.html#downloads解压:mysql-5.7.22-winx642.2配置环境变量…

STL - 底层实现

一、STL六大组件1)容器(Container)2)算法(Algorithm)3)迭代器(Iterator)4)仿函数(Function object)5)适配器(A…

Oracle以SQL方式导出导入(转移)数据

为什么80%的码农都做不了架构师?>>> 导出源数据 源数据库为Oracle 9g使用SQL Developer导出数据库的表结构和数据,导出成sql文件。这里的源Oracle和目标Oracle的编码是否相同,如果表字段里有时间类型的那么还要注意两库的日期格式…

产品经理应该干些啥?

产品经理的工作,总结起来就三件事: 1、知道做什么 2、知道怎么做 3、让别人去做 先来看“知道做什么”。 许多产品经理其实不知道该做什么,整日被动的应付上面安排下来的工作,一旦出现工作的断顿,就会感觉无所事…

oppo售后解锁恢复工具.zip_OPPO手机4个不为人知的小技巧,全知道的竟然不到1%,令人唏嘘...

随着科技的发展速度加快,智能手机产品也越做越高端。手机里面也包含着很多很实用的技巧,却没有多少人知道,简直就是白白的浪费呀!应用分屏一个很好用的功能,利用它我们可同时进行两种操作,比如:…

matlab中方波信号的谐波表示

matlab中方波信号的谐波表示 一.数学运算 二.matlab代码 t-7:0.001:7; %x(t)中t取值范围为【-7,7】 T11; T4; w2*pi/T; a02*T1/T; Ninput(请输入谐波数); Xta0*ones(1,length(t)); for k1:NXtXt2*a0*sinc(k*a0)*cos(k*w*t); end plot(t,Xt);三.运行结果 四。结论 很明显…

C语言学习笔记三

// C 学习笔记//日期:2013-5- 主讲://记录:ant //备注:课堂学习笔记//// switch ... case语句也可以用来实现分支的处理,使用方法如下 switch(表达式) { …

美到极致是疯狂

这是今天和校招新同事交流时的总结,希望校招新同事能够回顾,也能够写出自己的总结。 一、什么是代码高手?你怎么证明自己是代码高手? 知道许多代码技巧、JS炫彩技巧的人大有人在。你知道多少个.net函数,这一点都没有意…

websocket onclose方法什么时候触发_WebSocket断开重连解决方案,心跳重连实践

WebSocket是前后端交互的长连接,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。项目中,我们经常会使用WebSocket和服务器建立持久的连接。但是前…

matlab计算离散卷积

一.卷积的数学运算 (1)定义法 (2)图解法 (3)竖式乘法 二.matlab中计算离散卷积使用conv()函数 conv(a,b) 计算序列a与b的卷积 以上图中的习题为例 matlab代码如下: n1[ -2 -1 0 1 2 3 4 5]; …

黑马程序员_Java基础GUI

------- <a href"http://www.itheima.com" target"blank">android培训</a>、<a href"http://www.itheima.com" target"blank">java培训</a>、期待与您交流&#xff01; ---------- GUI:Graphical User Interf…

Maven中使用本地JAR包

为什么80%的码农都做不了架构师&#xff1f;>>> 在Maven项目中使用本地JAR包有两种方法&#xff1a; 1、使用system scope <dependencies><dependency><groupId>org.richard</groupId><artifactId>my-jar</artifactId><ver…

python文件读取方法read(size)的含义是_在Python中可使用read([size])来读取文件中的数据,如果参数size省略,则读取文件中的()。(4.0分)_学小易找答案...

【单选题】文本文件存储的是(),由若干文本行组成,通常每行以换行符 \n 结尾。(4.0分)【单选题】()属性是返回被打开文件的访问模式。(4.0分)【单选题】重力坝是由砼或( )修筑而成的大体积档水建筑物。【单选题】模式()的用途是打开一个文件用于追加。如果该文件已存在,文件指针…

折半查找法(二分查找法)

一.举例 二.算法时间复杂度 假设一共有n个元素 第一次折半元素个数变为n/2; 第二次折半元素个数变为n/4; 第三次折半元素个数变为n/8&#xff1b; 。。。。。 第k次折半元素个数变为n/2^k; 。。。。。 假设k次找到&#xff0c;即为n/2^k1&#xff1b; klog2(n); 三.函数实现 …

团队大事件-团队历程-团队记录~

团队名称&#xff1a; 河北大学信管团队 成立时间&#xff1a; 2010年7月8日 团队成员&#xff1a; 05&#xff1a;朱胜贤 07&#xff1a;孙旭峰 08&#xff1a;水亚亚 张文元 项玥 09&#xff1a;谢静 吕芳 吴凡 李亚慧 10&#xff1a; 第一组&#xff1a; 陈泰衡、李志伟…

Ubuntu链接ubuntu服务器

以前在windows下用ssh工具putty连接 linux服务器&#xff0c; 很简单&#xff0c;在linux下要连接linux的服务器&#xff0c; 找了下&#xff0c;果然putty在linux中也行1&#xff0c;sudo apt-get install putty安装后从applications中找到打开即可2. 直接用ssh登录ssh -l dev…

添加类iOS cocos2d 2游戏开发实战(第3版)

这两天一直在学习添加类之类的问题,现在正好有机会和大家讨论一下. 第1章 简介 1 1.1 第3版中的新增内容 2 1.2 选择ios版cocos2d的来由 3 1.2.1 收费 3 1.2.2 开源 4 1.2.3 objective-c 4 1.2.4 2d游戏引擎 4 1.2.5 物理引擎 4 1.2.6 技术难度较低 5 1.2.7 依然需要编…