zoukankan      html  css  js  c++  java
  • python(60):configparser 函数,配置文件

    ConfigParser模块学习

    介绍

    ConfigParser模块在python中是用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)。使用的配置文件的好处就是不用再程序中硬编码,可以是你的程序变得灵活起来。 
    注意:在python 3 中ConfigParser模块名已更名为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类型
      • getfloat(section,option)得到section中option的值,返回为float类型
      • getboolean(section, option)得到section中option的值,返回为boolean类型
    2. 写入配置文件

      • add_section(section) 添加一个新的section
      • has_section(section) 判断是否有section
      • set( section, option, value) 对section中的option进行设置
      • remove_setion(section)删除一个section
      • remove_option(section, option)删除section中的option
      • write(fileobject)将内容写入配置文件。

    使用

    注:传入的是字符串,不加引号;

    配置文件config.ini如下:

        [user]
        username = tom
        password = ***
        email = test@host.com
    
        [book]
        bookname = python
        bookprice = 25

    注意:也可以使用 “,”,替换 “=”

    程序:

    # -* - coding: UTF-8 -* -
        import ConfigParser
        import sys
    
        reload(sys)
        sys.setdefaultencoding("utf-8")
    
        #生成config对象
        conf = ConfigParser.ConfigParser()
        #用config对象读取配置文件
        conf.read("config.ini")
        #以列表形式返回所有的section
        sections = conf.sections()
        print 'sections:', sections   #sections: ['user', 'book']
        #得到指定section的所有option
        options = conf.options("user")
        print 'options:', options  #options: ['username', 'password', 'email']
        #得到指定section的所有键值对
        useritem = conf.items("user")
        print 'user:', useritem #user: [('username', 'tom'), ('password', '***'), ('email', 'test@host.com')]
        #指定section,option读取值
        str_val = conf.get("book", "bookname")
        int_val = conf.getint("book", "bookprice")
    
        print "value for book's bookname:", str_val   #value for book's bookname: python
        print "value for book's bookprice:", int_val   #value for book's bookprice: 25
        #写配置文件
        #更新指定section,option的值
        conf.set("book", "bookname", "python learning")
        #写入指定section增加新option和值
        conf.set("book", "bookpress", u"人民邮电出版社")
        #增加新的section
        conf.add_section('purchasecar')
        conf.set('purchasecar', 'count', '1')
        #写回配置文件
        conf.write(open("config.ini", "w"))

  • 相关阅读:
    SQL SERVER事务处理
    设计模式之简单工厂模式(静态工厂方法)
    设计模式之工厂方法模式
    为什么静态成员变量要通过类外初始化赋值?
    c++中可以对类中私有成员中的静态变量初始化吗?
    C++中的虚函数(virtual function)
    C++ 基础学习笔记(2)函数(测试题)
    c++中子对象的初始化可在复合类的构造函数的函数体内进行吗?还是子对象的初始化只能在初始化列表中进行?
    C++学习笔记(五)虚函数表解析(转)
    看过的书籍(转)
  • 原文地址:https://www.cnblogs.com/lovychen/p/9431359.html
Copyright © 2011-2022 走看看