ConfigParser模块教程

configParser 模块用于操作配置文件

注:Parser汉译为“解析”之意。

配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)。

为了更好的理解本文,我们先了解一下配置文件的组成及命名:配置文件(INI文件)由节(section)、键、值组成。

样例配置文件example.ini

[book]
title:ConfigParser模块教程
time:2012-09-20 22:04:55

[size]
size:1024

[other]
blog:csdn.net
上面配置文件中用的是冒号,也可以用等号。

example.py代码

# -*- coding: utf-8 -*-
import ConfigParser
import string
config=ConfigParser.ConfigParser()
config.read(u'd:/百度网盘/android/Python/python_example/sample.ini')
print string.upper(config.get("book","title")),
print "by",config.get("book","author"),
print "("+config.get("book","email")+")"
print
print config.get("size","size")
print
print config.sections()

for section in config.sections():
	print section
	for option in config.options(section):
		print " ",option,"=",config.get(section,option)

example.py执行结果

C:\Documents and Settings\Administrator>tmp.py
CONFIGPARSER模块教程 by 大头爸爸 (366500050@qq.com)

1024

['book', 'size', 'other']
book
  title = ConfigParser模块教程
  author = 大头爸爸
  email = 366500050@qq.com
  time = 2012-09-20 22:04:55
size
  size = 1024
other
  blog = csdn.net

写配置文件实例

import ConfigParser
import sys
config=ConfigParser.ConfigParser()
config.add_section("book")
config.set("book","title","这是标题")
config.set("book","author","大头爸爸")
config.add_section("size")
config.set("size","size",1024)
config.write(sys.stdout)

执行结果

[book]
title = 这是标题
author = 大头爸爸

[size]
size = 1024

ConfigParser方法

1、config=ConfigParser.ConfigParser()
创建ConfigParser实例

2、config.sections()
返回配置文件中节序列

3、config.options(section)
返回某个项目中的所有键的序列

4、config.get(section,option)
返回section节中,option的键值

5、config.add_section(str)
添加一个配置文件节点(str)

6、config.set(section,option,val)
设置section节点中,键名为option的值(val)

7、config.read(filename)
读取配置文件

8、config.write(obj_file)
写入配置文件

综合实例

#coding=utf-8

import ConfigParser

def writeConfig(filename):
    config = ConfigParser.ConfigParser()
    # set db
    section_name = 'db'
    config.add_section( section_name )
    config.set( section_name, 'dbname', 'MySQL')
    config.set( section_name, 'host', '127.0.0.1')
    config.set( section_name, 'port', '80')
    config.set( section_name, 'password', '123456')
    config.set( section_name, 'databasename', 'test')

    # set app
    section_name = 'app'
    config.add_section( section_name )
    config.set( section_name, 'loggerapp', '192.168.20.2')
    config.set( section_name, 'reportapp', '192.168.20.3')

    # write to file
    config.write( open(filename, 'a') )

def updateConfig(filename, section, **keyv):
    config = ConfigParser.ConfigParser()
    config.read(filename)
    print config.sections()
    for section in config.sections():
        print "[",section,"]"
        items = config.items(section)
        for item in items:
            print "\t",item[0]," = ",item[1]
    print config.has_option("dbname", "MySQL")
    print config.set("db", "dbname", "11")
    print "..............."
    for key in keyv:
        print "\t",key," = ", keyv[key]
    config.write( open(filename, 'r+') )

if __name__ == '__main__':
    file_name = 'test.ini'
    writeConfig(file_name)
    updateConfig(file_name, 'app', reportapp = '192.168.100.100')
    print "end__"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值