文档章节

python 的 ConfigParser 模块

俊赛潘安-才比管乐
 俊赛潘安-才比管乐
发布于 2014/12/28 09:54
字数 498
阅读 126
收藏 3

行业解决方案、产品招募中!想赚钱就来传!>>>

样例文件

  • 该类配置文件可以包含一个或多个节(section),每个节可以有多个参数(键=值)。
  • 样例配置文件(/proj/conf/example_conf)
    [book]  
    title:ConfigParser模块教程  
    author:大头爸爸  
    email:366500050@qq.com  
    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'/proj/conf/example_conf')  
    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文件执行结果
    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.n
    

写入配置文件

  • 示例
    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方法

  • 创建ConfigParser实例
    config=ConfigParser.ConfigParser()  
    
  • 返回配置文件中节序列
    config.sections()  
    
  • 返回某个项目中的所有键的序列
    config=ConfigParser.ConfigParser()  
    config.options(section)  
    
  • 返回section节中,option的键值
    config=ConfigParser.ConfigParser()  
    config.get(section,option)  
    
  • 添加一个配置文件节点(str)
    config=ConfigParser.ConfigParser()  
    config.add_section(str)  
    
  • 设置section节点中,键名为option的值(val)
    config=ConfigParser.ConfigParser()  
    config.set(section,option,val)  
    
  • 读取配置文件
    config=ConfigParser.ConfigParser()  
    config.read(filename)  
    
  • 写入配置文件
    config=ConfigParser.ConfigParser()  
    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__"
俊赛潘安-才比管乐

俊赛潘安-才比管乐

粉丝 38
博文 100
码字总数 68655
作品 0
海淀
系统管理员
私信 提问
加载中
请先登录后再评论。
WSGI Web服务器--UV-Web

uv-web是一个轻量级的支持高并发的WSGI Web服务器,基于libuv构建,部分代码源于开源项目bjoern,本质是python的C扩展,所以适用于部署绝大部分 python web应用(如 Django) 特性 兼容 HTTP 1...

Jone.x
2013/03/04
1.7K
0
购物车开源模块--FishCart

FishCartSQL 是一个功能齐全的购物车开源模块,可以在里面增加一些自己喜欢的页面。里面有许多高级特性,如:用户记录、即时交易、多语言支持、信用卡处理和单服务吕部署多个在线商店,里面用...

匿名
2013/03/27
1.7K
0
Python开发者社区整站源码--Pythoner

pythoner.net 整站源代码 依赖模块 Django 1.4.2 PIL DjangoVerifyCode 0.2.2 开发环境配置 运行scripts目录下的setupenv.sh文件,将会自动安装配置所需环境 设置本地环境变量:export env=D...

~T.y~
2013/04/10
3.1K
0
简单邮件联系页面带飞信通知模块

一个简单的“发邮件给我”的页面,支持HTML邮件编辑,支持附件发送,支持飞信短信提醒。里面有很多可以定制的地方,包括邮件的发送方式、前端页面的设计等等。 如果你也跟我一样喜欢通过邮件...

leehorsley
2012/10/22
1.6K
0
Python数据分析工具包--Pandas

Python Data Analysis Library 或 pandas 是连接 SciPy 和 NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集...

匿名
2012/10/30
2.1W
2

没有更多内容

加载失败,请刷新页面

加载更多

算法与数据结构体系课

算法与数据结构体系课【超清原画】 下载地址:百度云盘 从0到工作5年,面试、进大厂、搭建知识体系、拓展技术上限 你不再需要其它算法与数据结构课程了 为什么学算法已经是一个不应该问的问题...

1930133570
28分钟前
12
0
如何停止跟踪并忽略对Git中文件的更改? - How to stop tracking and ignore changes to a file in Git?

问题: I have cloned a project that includes some .csproj files. 我已经克隆了一个包含一些.csproj文件的项目。 I don't need/like my local csproj files being tracked by Git (or bei......

富含淀粉
53分钟前
19
0
Redis阻塞

可能存在问题 内在原因:API或数据结构使用不合理、CPU饱和、持久化阻塞等 外在原因:CPU竞争、内存交换、网络问题等 问题处理: API或数据结构使用不合理,可能存在慢查询或者大对象: 发现...

游泳鸟
今天
17
0
OSChina 周五乱弹 —— 来人,上幼儿园老师跳舞的图!

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 小小编辑:《奇跡の海》- 坂本真綾 《奇跡の海》- 坂本真綾 手机党少年们想听歌,请使劲儿戳(这里) 巴蜀(@巴拉迪维)最近有点闹心了, @巴...

小小编辑
今天
58
1
IO plan命令备忘

本文为基于ICCII的IO plan的备忘录 创建bump array 使用命令create_bump_array IO ring + corner cell 其实,直接用create cell然后手工挪过去也不费事,反正也就一次。后面通过读def的方式读...

白山头
今天
25
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部