zoukankan      html  css  js  c++  java
  • python 解析 配置文件

    资料: https://docs.python.org/3/library/configparser.html

    环境

    python 3.4.4

    RawConfigParser方式

    example.cfg文件:

    [Section1]
    an_int = 15
    a_bool = true
    a_float = 3.1415
    baz = fun
    bar = Python
    foo = %(bar)s is %(baz)s!

    test_example_ini.py 文件:

    import configparser
    
    def test_write():
        config = configparser.RawConfigParser()
        config.add_section('Section1')
        config.set('Section1', 'an_int', '15')
        config.set('Section1', 'a_bool', 'true')
        config.set('Section1', 'a_float', '3.1415')
        config.set('Section1', 'baz', 'fun')
        config.set('Section1', 'bar', 'Python')
        config.set('Section1', 'foo', '%(bar)s is %(baz)s!')
    
        with open('example.cfg', 'w',encoding="utf-8") as configfile:
            config.write(configfile)
            
    def test_read():
        config = configparser.RawConfigParser()
        config.read('example.cfg')
    
        a_float = config.getfloat('Section1', 'a_float')
        an_int = config.getint('Section1', 'an_int')
        print (a_float + an_int)
    
        if config.getboolean('Section1', 'a_bool'):
            print (config.get('Section1', 'foo'))
            
    if __name__=="__main__":
        test_write()
        test_read()

    输出:

    18.1415
    %(bar)s is %(baz)s!

    同时生成example.cfg文件,内容如下:

    [Section1]
    an_int = 15
    a_bool = true
    a_float = 3.1415
    baz = fun
    bar = Python
    foo = %(bar)s is %(baz)s!

     ConfigParser方式

    mysql.cfg 文件内容:

    [mysqld]
    user = mysql
    pid-file = /var/run/mysqld/mysqld.pid
    skip-external-locking = True
    old_passwords = 1
    skip-bdb = True
    skip-innodb = False
    
    [oracle]
    user = root
    password = hello

    test_mysql_cfg.py 文件内容:

    import configparser
    
    def test_write():
        config = configparser.ConfigParser()
        config.read('mysql.cfg')
    
        config.set("mysqld", "mysql_pass", "123456")
        config.write(open('mysql.cfg', "w"))    
            
    def test_read():
        config = configparser.ConfigParser()
        config.read('mysql.cfg')
    
        s = config.sections()
        print ('section:', s)
    
        o = config.options("mysqld")
        print ('mysqld:', o)
    
        v = config.items("mysqld")
        print ('mysql:', v)
    
        mysql_user = config.get("mysqld", "user")
        mysql_pid = config.get("mysqld", "pid-file")
        mysql_old = config.getint("mysqld", "old_passwords")
        mysql_skipbdb = config.get("mysqld", "skip-bdb")
    
        print (mysql_user, mysql_pid, mysql_old, mysql_skipbdb)
            
    if __name__=="__main__":
        test_write()
        test_read()

    执行结果:

    section: ['mysqld', 'oracle']
    mysqld: ['user', 'pid-file', 'skip-external-locking', 'old_passwords', 'skip-bdb', 'skip-innodb', 'mysql_pass']
    mysql: [('user', 'mysql'), ('pid-file', '/var/run/mysqld/mysqld.pid'), ('skip-external-locking', 'True'), ('old_passwords', '1'), ('skip-bdb', 'True'), ('skip-i
    nnodb', 'False'), ('mysql_pass', '123456')]
    mysql /var/run/mysqld/mysqld.pid 1 True

    同时mysql.cfg变化如下:

    [mysqld]
    user = mysql
    pid-file = /var/run/mysqld/mysqld.pid
    skip-external-locking = True
    old_passwords = 1
    skip-bdb = True
    skip-innodb = False
    mysql_pass = 123456
    
    [oracle]
    user = root
    password = hello
  • 相关阅读:
    HDU5730 Shell Necklace
    BZOJ4883 [Lydsy2017年5月月赛]棋盘上的守卫
    Spring boot 配置文件
    org.joda.time.DateTime 日期操作
    Elasticsearch + Springboot 启动报错 java.net.ConnectException: Connection refused
    centos7 在docker下安装es Elasticsearch
    centos 7 。 docker 安装rabbitmq 以及集权搭建
    linux 安装mysql5.7.25
    安装rabbtimq CentOS 7
    docker + spring boot 打包 部署。
  • 原文地址:https://www.cnblogs.com/miniren/p/5109503.html
Copyright © 2011-2022 走看看