• python对ini配置文件处理


    实例文件

    [root@docker2 ~]# cat test.ini

    [base]

    host = 192.168.88.121

    port = 3306

    user = root

    path = /home

    passwd = 123

    [callback]

    path = /Autops

    alert = yes

    count = 1

    ftp = no

    基础用法:代码片段

    >>> cf.read("test.ini")                              #读取配置文件

    ['test.ini']

    >>> cf.sections()                                    #片段名

    ['base', 'callback']

    >>> cf.options("callback")                           #配置key值/配置项

    ['path', 'alert', 'count', 'ftp']

    >>> cf.items("callback")                           #配置选项和值

    [('path', '/Autops'), ('alert', 'yes'), ('count', '1'), ('ftp', 'no')]

    >>> cf.get("base","port")

    '3306'

    >>> cf.get("base","passwd")                           #没有的key的会报错

    Traceback (most recent call last):

    ConfigParser.NoOptionError: No option 'passwd' in section: 'base'

    >>> cf.set("base","passwd","123")               #设定选项,key可以时不存在的

    >>> cf.write(open("test.ini","w"))                  #写入配置文件

    >>> cf.getint('base','port')                           #直接读出int型,但value必须可以转成int

    3306

    >>> cf.getfloat('base','port')

    3306.0

    >>> cf.getboolean('callback','alert') #0/no/false/off都视为False,

    #1/yes/true/on视为True

    True

    >>> cf.getboolean('callback','count')

    True

    注意事项:

    • 当配置文件中有定义DEFAULT片段时,在其他片段中找不到的相应的key时,就会到DEFAULT中去查找,如果还是没有就会报错NoOptionError

    [DEFAULT]

    dbn=mysql

    user=root

    [base]

    user = autops

    >>> cf.get('base','user')

    'autops'

    >>> cf.get('base','dbn')

    'mysql                                                      #dbn的值是default里的

    • 可以像字符串进行变量替换,形成一个大字符串 %s

    [DEFAULT]

    conn_str=%(dbn)s -u%(user)s -p%(passwd)s %(db)s

    dbn=mysql

    user=root

    host = 192.168.88.121

    port = 3306

    [db1]

    port = 3307

    user = root

    db = autops

    passwd = 123

    [db2]

    user = monitor

    db = monitor

    passwd = 123

    结果:

    >>> cf.get("db1","conn_str")

    'mysql -uroot -p123 autops'

    >>> cf.get("db2","conn_str")

    'mysql -umonitor -p123 monitor

  • 相关阅读:
    selenium3+python自动化9-JS增加、删除、修改HTML元素属性
    selenium3+python自动化8-JS处理滚动条 (2020-02-14 17:35)
    在sql server使用链接服务器中访问mysql
    C# 软件绑定QQ群类开源放出
    时间段控制代码
    C# Aspose.Words.Document.PageCount 踩坑笔记(获取文档页数)
    Sql Server日期转汉字字符串
    C#调用WPS转换文档到PDF的的实现代码。
    SocketException 不知道这样的主机(Quartz.;Dns.GetHostEntry;new HttpChannel)问题记录
    SqlServer 联合Update
  • 原文地址:https://www.cnblogs.com/wxl-dede/p/4998840.html
Copyright © 2020-2023  润新知