zoukankan      html  css  js  c++  java
  • python 之ConfigParser

    1. ConfigParser 简介
      ConfigParser是用来操作配置文件的模块。
        说明:[**]为配置文件的section,基本格式为
        [section]
        key = value
      eg:
        [db]
        db_host = 127.0.0.1
        db_port = 22
        db_user = root
        db_pass = rootroot
        [concurrent]
        thread = 10
        processor = 20
    2. eg
      #-*- encoding:UTF-8 -*-
       import ConfigParser
      
      def main():
          #初始化
           cf = ConfigParser.ConfigParser()
           cf.read("test.conf")
      
          # 获得所有的section
          section = cf.sections()
          print 'section:', section
      
           #获取指定section下所有的option(key)
          keys = cf.options("db")
          print 'options:', keys
      
          #获取指定section的option的值
          value = cf.items("db")
          print 'db:', value
       
          #可以按照类型读取出来,同样的还有getfloat、getboolean
          db_host = cf.get("db", "db_host")
          db_port = cf.getint("db", "db_port")
          db_user = cf.get("db", "db_user")
          db_pass = cf.get("db", "db_pass")
           # 返回的是整型的
          threads = cf.getint("concurrent", "thread")
          processors = cf.getint("concurrent", "processor")
          print "db_host:", db_host
          print "db_port:", db_port
          print "db_user:", db_user
          print "db_pass:", db_pass
          print "thread:", threads
          print "processor:", processors
      
          #修改一个option(key)的值,(记得写回去)
          cf.set("db", "db_pass", "hanhong")
          cf.write(open("test.conf", "w"))
      
          #添加一个section。(写回去)
          cf.add_section('liuqing')
          cf.set('liuqing', 'int', '15')
          cf.set('liuqing', 'bool', 'true')
          cf.set('liuqing', 'float', '3.1415')
          cf.set('liuqing', 'baz', 'fun')
          cf.set('liuqing', 'bar', 'Python')
          cf.set('liuqing', 'foo', '%(bar)s is %(baz)s!')
          cf.write(open("test.conf", "w"))
      
          #移除section 或者option 。(只要进行了修改就要写回)
          cf.remove_option('liuqing','int')
          cf.remove_section('liuqing')
          cf.write(open("test.conf", "w"))
      
      if __name__ == "__main__":
          main()

      输出:

      section: ['db', 'concurrent']
      options: ['db_host', 'db_port', 'db_user', 'db_pass']
      db: [('db_host', '127.0.0.1'), ('db_port', '22'), ('db_user', 'root'), ('db_pass', 'rootroot')]
      db_host: 127.0.0.1
      db_port: 22
      db_user: root
      db_pass: rootroot
      thread: 10
      processor: 20
      
  • 相关阅读:
    node
    github
    [模块] pdf转图片-pdf2image
    python 15 自定义模块 随机数 时间模块
    python 14 装饰器
    python 13 内置函数II 匿名函数 闭包
    python 12 生成器 列表推导式 内置函数I
    python 11 函数名 迭代器
    python 10 形参角度 名称空间 加载顺序
    python 09 函数参数初识
  • 原文地址:https://www.cnblogs.com/yunsicai/p/3571167.html
Copyright © 2011-2022 走看看