一.ConfigParser简介

ConfigParser 是用来读取配置文件的包。配置文件的格式如下:中括号“[ ]”内包含的为section。section 下面为类似于key-value 的配置内容。

  1. [mongoDb] #-------->section
  2. userName=dsg
  3. passWord=dsg
  4. dataBase=promo
  5. tableName=trace
  6. mongodb_ip_port=127.0.0.1:3717
  7.  
  8. [filePath]#-------->section
  9. incoming=/mnt/data/share/ingest/incoming/mongo

中括号“[ ]”内包含的为section。紧接着section 为类似于key-value 的options 的配置内容。

二、ConfigParser 初始工作

使用ConfigParser 首选需要初始化实例,并读取配置文件:

  1. import ConfigParser
  2. cf = ConfigParser.ConfigParser()#生成一个实例
  3. cf.read("配置文件名") #读取配置文件

三、ConfigParser 基本操作

1.基本的读取配置文件

-read(filename) 直接读取.conf文件内容。

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

  1. ['mongoDb', 'filePath']

-options(section) 得到该section的所有option,并以列表的形式返回。

  1. ['username', 'password', 'database', 'tablename', 'mongodb_ip_port']

-items(section) 得到该section的所有键值对,以列表的形式返回

  1. [('username', 'dsg'), ('password', ''), ('database', 'promo'), ('tablename', 'trace'), ('mongodb_ip_port', '127.0.0.1:3717')]

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

  1. 123 <type 'str'>

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

  1. 123 <type 'int'>

2.基本的写入配置文件

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

  1. conf.add_section('abcd')

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

  1. 1 conf.set('abcd','haha','dsadasdasdada') #添加
  2. 2 conf.set('mongoDb','passWord','2222222')#修改

注意:没有write()操作是不生效的。

  1. conf.write(open('F:\\clientconf.conf','w')

四、具体使用示例

1.获取所有的sections

也就是将配置文件中所有“[ ]”读取到列表中:

  1. sectionsList=conf.sections()
  2. print 'sectionsList:',sectionsList
  3. #输出结果为
  4. ['mongoDb', 'filePath']

2.获取指定sections的opention

即将配置文件某个section 内key 读取到列表中:

  1. 1 optionsList=conf.options('mongoDb')
  2. 2 print 'optionsList:',optionsList
  3. 3 #输出结果
  4. 4 ['username', 'password', 'database', 'tablename', 'mongodb_ip_port']

3.获取指定的sections的配置信息

获取指定节点下所有的键值对

  1. mongoDb=conf.items('mongoDb')
  2. print 'mongoDb=',mongoDb
  3. #输出结果是
  4. [('username', 'dsg'), ('password', ''), ('database', 'promo'), ('tablename', 'trace'), ('mongodb_ip_port', '127.0.01:3717')]

4.按照类型读取指定的sections的opention信息

  1. print 'str=',conf.get('mongoDb','passWord')
  2. print 'strType=',type(conf.get('mongoDb','passWord'))#
  3.  
  4. print 'int=',conf.getint('mongoDb','passWord')
  5. print 'intType=',type(conf.getint('mongoDb','passWord'))#注意:类型不对,会报错误!
  6. #输出结果:
  7. 2222222
  8. <type 'str'>
  9. 2222222
  10. <type 'int'>

5.添加opention和设置某个opention的值

  1. conf.add_section('abcd')#添加section
  2. conf.set('abcd','haha','dsadasdasdada')#添加opentions
  3. conf.set('mongoDb','passWord','')#修改 opentions
  4. conf.write(open('F:\\clientconf.conf','w'))#只有写入才有效

6.删除section或者opention

  1. cf.remove_option('liuqing','int')
  2. cf.remove_section('liuqing')
  3. cf.write(open("test.conf", "w")

7.检查是否存在

  1. has_sec = obj.has_section("mysql1") # false
  2. print(has_sec)

解析配置文件ConfigParser模块的更多相关文章

  1. Python操作配置文件configparser模块

    在实际的开发过程中,我们常有操作ini格式和conf格式配置文件的操作,Python为我们提供了configparser模块,方便我们对配置文件进行读写操作. config.ini配置文件内容如下: ...

  2. python 配置文件 ConfigParser模块

    ConfigParser模块 用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser. 来看一个好多软件的常见文档格式如下 [DEFAULT] Se ...

  3. [xml模块、hashlib模块、subprocess模块、os与sys模块、configparser模块]

    [xml模块.hashlib模块.subprocess模块.os与sys模块.configparser模块] xml模块 XML:全称 可扩展标记语言,为了能够在不同的平台间继续数据的交换,使交换的数 ...

  4. python ConfigParser模块 配置文件解析

    ConfigParser模块主要是用来解析配置文件的模块,像mysql,或者win下面的ini文件等等 下面我们来解析mysql的配置文件my.cnf my.cnf配置文件内容 [mysqld] da ...

  5. Python模块:配置文件解析器configparser

    版权声明:本文为博主皮皮http://blog.csdn.net/pipisorry原创文章,未经博主同意不得转载. https://blog.csdn.net/pipisorry/article/d ...

  6. Python3 中 configparser 模块解析配置的用法详解

    configparser 简介 configparser 是 Pyhton 标准库中用来解析配置文件的模块,并且内置方法和字典非常接近.Python2.x 中名为 ConfigParser,3.x 已 ...

  7. python:实例化configparser模块读写配置文件

    之前的博客介绍过利用python的configparser模块读写配置文件的基础用法,这篇博客,介绍下如何实例化,方便作为公共类调用. 实例化的好处有很多,既方便调用,又降低了脚本的维护成本,而且提高 ...

  8. 第二十一天,pickle json xml shelve configparser模块

    今日内容 1.pcikle 专用于python语言的序列化 2.json 是一种跨平台的数据格式 也属于序列化的一种方式 3.xml 可拓展标记语言 一种编写文档的语法 也支持跨平台 比较json而言 ...

  9. python3 之configparser 模块

    configparser 简介 configparser 是 Pyhton 标准库中用来解析配置文件的模块,并且内置方法和字典非常接近[db]db_count = 31 = passwd2 = dat ...

随机推荐

  1. 【转】vs2010下创建webservice

    题记:学了六个月java一直想做java,没想到进了.NET项目组,还是VB2012,还有WebService,压力山大,这篇纯粹看看多图的效果,版主不要怪罪. Visual Studio 2010默 ...

  2. BeyondCompare常用功能图解

    http://jingyan.baidu.com/article/066074d68f847ec3c31cb05a.html http://lovesoo.org/use-file-compariso ...

  3. ecshop的模板文件中如何判断用户是否登录

    ecshop中对于smarty的运用和改造有很大的值得借鉴的地方,在dwt模板文件中可以直接判断用户是否登录,现在有规定,凡是只展示不销售的电商平台,一律不得展示商品价格,但可以在用户登录后显示. & ...

  4. 迪杰斯特拉(Dijkstra)算法

    # include <stdio.h> # define MAX_VERTEXES //最大顶点数 # define INFINITY ;//代表∞ typedef struct {/* ...

  5. c++中自增(++)和自减(--)操作符

    自增(++)和自减(--)操作符为对象加1 或减1 操作提供了方便简短的实现方式.它们有前置和后置两种使用形式.到目前为止,我们已经使用过前自增操作,该操作使其操作数加1,操作结果是修改后的值.同理, ...

  6. 轻量级的数据交换语言(JSON)

    游戏开发过程中,很多用到JSON的地方:客户端与服务端的网络通信,程序读取客户端的数值表之类的. JSON用于描述数据结构,有以下形式存在. 对象(object):一个对象以“{”开始,并以“}”结束 ...

  7. C趣味100道之58.拉丁方的一些想法。

    题目如上. 思路(未写) 完整代码如下: #include<iostream> #include<queue> #include<math.h> using nam ...

  8. Arduino周边模块:执行部件(舵机、直流电机、步进电机)

    Arduino周边模块:执行部件 Arduino周边模块:执行部件 嵌入式系统的构成 如今已经有各种各样的基于Arduino的嵌入式系统, 比如:智能小车.3D打印机.机器人,甚至还有基于Arduin ...

  9. 精读《javascript高级程序设计》笔记一——基本概念

    语法 严格模式 启用严格模式,在脚本顶部或函数内部上方添加"use strict";语句. 数据类型 typeof typeof返回undifined,boolean,number ...

  10. 分析JavaScript代码应该放在HTML代码哪个位置比较好

    本文总结了多种放置JS代码的方法,需要的朋友可以参考下 在哪里放置 JavaScript 代码? 通常情况下,JavaScript 代码是和 HTML 代码一起使用的,可以将 JavaScript 代 ...