前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ConfigParser模块教程

ConfigParser模块教程

作者头像
幽鸿
发布2020-04-02 17:59:14
4810
发布2020-04-02 17:59:14
举报

configParser 模块用于操作配置文件

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

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

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

样例配置文件example.ini

代码语言:javascript
复制
    [book]  
    title:ConfigParser模块教程  
    time:2012-09-20 22:04:55  
      
    [size]  
    size:1024  
      
    [other]  
    blog:csdn.net  

上面配置文件中用的是冒号,也可以用等号。

example.py代码

代码语言:javascript
复制
    # -*- 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)  

写配置文件实例

代码语言:javascript
复制
    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)  

执行结果

代码语言:javascript
复制
    [book]  
    title = 这是标题  
    author = 大头爸爸  
      
    [size]  
    size = 1024  

ConfigParser方法

代码语言:javascript
复制
    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)  
    写入配置文件  

综合实例

代码语言:javascript
复制
    #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__"  
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • configParser 模块用于操作配置文件
  • 样例配置文件example.ini
  • example.py代码
  • 执行结果
  • ConfigParser方法
  • 综合实例
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档