精华内容
下载资源
问答
  • python 操作配置文件ini的三种方法 方法一:crudini 命令 说明 crudini命令是Linux下一个操作配置文件命令工具 用法 crudini --set [--existing] config_file section [param] [value] # 修改配置文件内容 ...
  • python 操作配置文件ini的三种方法 方法一:crudini 命令 说明 crudini命令是Linux下一个操作配置文件命令工具 用法 crudini --set [--existing] config_file section [param] [v...

    python 操作配置文件ini的三种方法

    方法一:crudini 命令

    说明

    crudini命令是Linux下的一个操作配置文件的命令工具
    用法

    crudini --set [--existing] config_file section [param] [value] # 修改配置文件内容
    crudini --get [--format=sh|ini] config_file [section] [param]  # 获取配置文件内容
    crudini --del [--existing] config_file section [param]         # 删除配置文件内容
    crudini --merge [--existing] config_file [section]             # 合并
    • 1
    • 2
    • 3
    • 4

    举例

    添加

     crudini --set test.ini test_section test_param test_value
    • 1

    更新

     crudini --set [--existing]  test.ini test_section test_param test_value
    • 1

    删除
    删除param:

     crudini --del test.ini test_section test_param
    • 1

    删除section:

     crudini --del test.ini test_section
    • 1

    获取

     crudini --del test.ini test_section test_param
    • 1

    如果该标量不在某一个section里面,则section用一个空字符表示:

     crudini --del test.ini '' test_param
    • 1

    合并
    将another.ini配置文件合并到test.ini中:

     crudini --merge test.ini < another.ini
    • 1

    方法二 :ConfigParser模块

    说明

    ConfigParser 模块为常用的操作ini文件的模块,但是存在一些缺陷,无法识别section的大小写,无法读取文件注释,这样修带有注释的配置文件时就会存在问题。

    用法示例

    示例文件test.ini

    [test_section]
    test_param = test_value
    
    
    • 1
    • 2
    • 3
    • 4

    读取

    import ConfigParser
    
    config = ConfigParser.ConfigParser()
    config.readfp(open('test.ini'))
    test_value = config.get("test_section","test_param")
    • 1
    • 2
    • 3
    • 4
    • 5

    写入
    添加section

    import ConfigParser
    
    config = ConfigParser.ConfigParser()
    
    # set a value of parameters
    config.add_section("test_section2")
    config.set("test_section2", "test_param2", "test_value2")
    config.set("test_section3", "test_param3", "test_value3")
    # write to file
    config.write(open('test.ini', "w"))
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    修改

    import ConfigParser
    
    config = ConfigParser.ConfigParser()
    config.read('1.ini')
    config.set("test_section", "test_param3", "test_value3")
    
    config.write(open('test.ini', "r+")) 
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    方法三:configobj模块

    说明

    正常的读配置文件的方法是给ConfigObj一个文件名,然后通过字典来访问成员,子段来获取value值,不会存在注释无法读取的缺陷

    用法示例

    示例文件test.ini

    [test_section]
    test_param = test_value
    • 1
    • 2

    读取

    from configobj import ConfigObj  
    
    config = ConfigObj("test.ini",encoding='UTF8')  
    
    # 读配置文件  
    print config['test_section']  
    print config['test_section']['test_param ']  
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    修改

    from configobj import ConfigObj  
    
    config = ConfigObj("test.ini",encoding='UTF8')  
    config['test_section']['test_param '] = "test_value2"  
    # 写入
    config.write()  
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    添加section

    from configobj import ConfigObj  
    
    config = ConfigObj("test.ini",encoding='UTF8')  
    config['test_section2'] = {}  
    config['test_section2']['test_param'] = "test_value"  
    # 写入
    config.write()  
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    删除

    from configobj import ConfigObj  
    
    config = ConfigObj("test.ini",encoding='UTF8')  
    del config['test_section2']['test_param']  
    config.write()  
    • 1
    • 2
    • 3
    • 4
    • 5
                <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet">
                                </div>
    
    展开全文
  • python解析配置文件ini

    2021-01-04 11:00:14
    ini 配置文件 配置文件的格式如下:中括号“[ ]”内包含的为section。section 下面为类似于key-value 的配置内容。 # 数据库配置 [db] host = 192.168.1.133 port = 3306 name = 9 password = 123123 # redis 配置 ...

    参考文章

    configparser模块简介

    python之configparser模块详解–小白博客

    ini 配置文件

    配置文件的格式如下:中括号“[ ]”内包含的为section。section 下面为类似于key-value 的配置内容。每个section的key可以相同。

    # 数据库配置
    [db]
    host = 192.168.1.133
    port = 3306
    name = shop
    password = 123123
    
    # redis 配置
    [redis]
    host = 192.168.1.136
    port = 6300
    password = yes
    

    生成配置文件

    # 初始化配置危机
    def init_config():
        config = configparser.ConfigParser()
    
        config["db"] = {"host": "192.168.1.133",
                        "port": "3306",
                        "name": "shop",
                        "password": "123123"
                        }  # 类似于操作字典的形式
    
        config["redis"] = {"host": "192.168.1.136",
                           "port": "3309",
                           "password": "redis"
                           }
    
        with open("example.ini", "w", encoding="UTF-8") as configfile:
            config.write(configfile)  # 将对象写入文件
    

    运行结果:生成配置文件 example.ini,内容如下。

    [db]
    host = 192.168.1.133
    port = 3306
    name = shop
    password = 123123
    
    [redis]
    host = 192.168.1.136
    port = 3309
    password = redis
    

    读取配置

    # 读取配置文件
    def read_config():
        config = configparser.ConfigParser()
        config.read("example.ini", encoding="UTF-8")
    
        # 获取指定key的value
        # 方式一
        db_host = config["db"]["host"]
        redis_host = config["redis"]["host"]
    
        print("db_host = %s " % db_host)
        print("redis_host = %s " % redis_host)
    
        # 方式二
        db_port = config.get("db", "port")
        redis_port = config.get("redis", "port")
    
        print("db_port = %s " % db_port)
        print("redis_port = %s " % redis_port)
    
        # 方式三 . getint,getboolean,getfloat
        db_port = config.getint("db", "port")
        redis_port = config.getint("redis", "port")
        print("db_port = %s " % db_port)
        print("redis_port = %s " % redis_port)
    
        print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        # 判断 section 是否存在
        flag = config.has_section("redis")
        print(flag)
    
        flag = config.has_section("mq")
        print(flag)
    
        # 判断 ption 是否存在
        flag = config.has_option("redis", "host")
        print(flag)
    
        print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
        # 获取 sections
        sections = config.sections()
        print(sections)
    
        # 获取 section 的 key 集合
        options = config.options("db")
        print(options)
    
        # 获取 section 的 key-value 集合
        items = config.items("db")
        print(items)
    
    

    运行结果:

    db_host = 192.168.1.133 
    redis_host = 192.168.1.136 
    db_port = 3306 
    redis_port = 3309 
    db_port = 3306 
    redis_port = 3309 
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    True
    False
    True
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ['db', 'redis']
    ['host', 'port', 'name', 'password']
    [('host', '192.168.1.133'), ('port', '3306'), ('name', 'shop'), ('password', '123123')]
    

    修改配置

    def update_config():
        config = configparser.ConfigParser()
        config.read("example.ini", encoding="UTF-8")
    
        # 添加配置
        config.add_section("file")
        config.set("file", "max_size", "10000")
        config.set("file", "extend", ".img,.xml")
    
        # 修改配置
        config.set("redis", "port", "6379")
    
        # 删除配置
        config.remove_option("redis", "password")
    
        with open('example.ini', 'w') as config_file:
            config.write(config_file)
    
    

    运行结果,example.ini 文件如下:

    [db]
    host = 192.168.1.133
    port = 3306
    name = shop
    password = 123123
    
    [redis]
    host = 192.168.1.136
    port = 6379
    
    [file]
    max_size = 10000
    extend = .img,.xml
    

    RawConfigParser , ConfigParser 区别

    RawConfigParser是最基础的INI文件读取类,ConfigParser、SafeConfigParser支持对 %(value)s 变量的解析

    ini 添加内容

    [message]
    name=小明
    age=27
    detail= name is %(name)s age is %(age)s
    
    def raw_config_parser():
        config = configparser.ConfigParser()
        config.read("example.ini", encoding="UTF-8")
    
        print("~~~~~~~~~~ConfigParser~~~~~~~~~~~~")
        name = config["message"]["name"]
        age = config["message"]["age"]
        detail = config["message"]["detail"]
    
        print("name = %s , age = %s , detail = %s"% (name, age, detail))
    
        config = configparser.RawConfigParser()
        config.read("example.ini", encoding="UTF-8")
    
        print("~~~~~~~~~~ConfigParser~~~~~~~~~~~~")
        name = config["message"]["name"]
        age = config["message"]["age"]
        detail = config["message"]["detail"]
    
        print("name = %s , age = %s , detail = %s"% (name, age, detail))
    

    运行结果:

    ~~~~~~~~~~ConfigParser~~~~~~~~~~~~
    name = 小明 , age = 27 , detail = name is 小明 age is 27
    ~~~~~~~~~~ConfigParser~~~~~~~~~~~~
    name = 小明 , age = 27 , detail = name is %(name)s age is %(age)s
    
    展开全文
  • python读取配置文件ini

    千次阅读 2018-03-09 10:02:10
    python读取配置文件配置文件作为一种可读性很好的格式,非常适用于存储程序中的配置数据。 在每个配置文件中,配置数据会被分组(比如“config”和 “cmd”)。 每个分组在其中指定对应的各个变量值。如下:# 定义...

    python读取配置文件

    配置文件作为一种可读性很好的格式,非常适用于存储程序中的配置数据。 在每个配置文件中,配置数据会被分组(比如“config”和 “cmd”)。 每个分组在其中指定对应的各个变量值。如下:

    #  定义config分组
    [config]
    platformName=Android
    appPackage=com.romwe
    appActivity=com.romwe.SplashActivity
    
    #  定义cmd分组
    [cmd]
    viewPhone=adb devices
    startServer=adb start-server
    stopServer=adb kill-server
    
    #  定义log分组
    [log]
    log_error=true

    基本的读取操作:

    • -read(filename)               直接读取文件内容
    • -sections()                      得到所有的section,并以列表的形式返回
    • -options(section)            得到该section的所有option
    • -items(section)                得到该section的所有键值对
    • -get(section,option)        得到section中option的值,返回为string类型
    • -getint(section,option)    得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat() 函数。

    在对配置文件进行读写操作前,我们需要先进行以下两个操作:

    1、实例化ConfigParser对象:

    #  实例化configParser对象
    cf = configparser.ConfigParser()

    2、读取配置文件

    #  读取config.ini文件
    cf.read(config.ini)

    然后进行配置文件的读取操作。

    以get为例,示例代码如下:

    #  定义方法,获取config分组下指定name的值
    def getConfigValue(self, name):
        value = self.cf.get("config", name)
        return value
    #  定义方法,获取cmd分组下指定name的值
    def getCmdValue(self, name):
        value = self.cf.get("cmd", name)
        return value

    通过get(section, option)方法,可以获取指定分组下指定名称的值,其他方法类似,可参照着尝试。

    基本的写入操作:

    • -write(fp)  将config对象写入至某个 .init 格式的文件  Write an .ini-format representation of the configuration state.
    • -add_section(section)   添加一个新的section
    • -set( section, option, value   对section中的option进行设置,需要调用write将内容写入配置文件
    • -remove_section(section)  删除某个 section
    • -remove_option(section, option) 

    以set(section, option, value)为例,示例代码如下:

    #  定义方法,修改config分组下指定name的值value
    def setConfigValue(self, name, value):
        cfg = self.cf.set("config", name, value)
        fp = open(r'config.ini', 'w')
        cfg.write(fp)
    

    其他方法可以自行尝试。

    配置文件中的名字是不区分大小写的,如下两个是等价的:

    #  不区分大小写,以下两个等价,都获取appActivity的值
    self.cf.get("config", "appActivity")
    self.cf.get("config", "APPACTIVITY")
    

    在解析时,getboolean()方法查找任何可行的值,例如以下几个都是等价的:

    #  以下取得的值都是等价的为ture
    [log]
    log_error=true
    log_error=TRUE
    log_error=1
    log_error=yes
    展开全文
  • 在写测试脚本时,经常有一些需要变动数据,可以单独放在ini文件里,然后读取传递给   相应函数,这样程序操作更灵活。具体方法介绍如下:  文件结构: Cofig.ini内容: [test1] ip = 10.10.10.10 ...

    在写测试脚本时,经常有一些需要变动的数据,可以单独放在ini文件里,然后读取传递给

     

    相应的函数,这样程序操作更灵活。具体的方法介绍如下:

     文件结构:


    Cofig.ini内容:

    [test1]
    ip = 10.10.10.10
    
    [test2]
    port = 25566
    
    [test3]
    name = www.baidu.com

    直接上代码:

    import configparser

    conf
    = configparser.ConfigParser()
    conf.read(
    "cofig.ini")

    #读取配置文件里所有的Section
    print(conf.sections())

    #打印出test1这个section下包含key
    print(conf.options("test1"))

    #打印test1这个section下所有的key及对应的values
    print(conf.items("test1"))


    conf.add_section(
    "add")#添加section到配置文件
    conf.set("add","ip","11.11.1.1")#add section新增ip参数和值
    conf.set("add","addr","shenzhen")
    conf.write(
    open("cofig.ini","w"))#写完数据要write一下

    print(conf.items("add"))#打印刚添加的新内容


    输出的结果:

    ['test1', 'test2', 'test3']

    ['ip']

    [('ip', '10.10.10.10')]

    [('ip', '11.11.1.1'), ('addr', 'shenzhen')]

    展开全文
  • ini配置文件读取 ini文件作为配置文件的常用度就不用多介绍了, 这里主要介绍一下python怎么读取ini的配置信息 configparser使用 from configparser import ConfigParser [注]: py3里是configParser, py2直接...
  • python3配置文件ini读取方法

    千次阅读 2016-02-26 13:14:09
    对于一些项目我们需要保留配置文件,以便继续访问,python明文项目配置文件.ini格式读取方法  import configparserclass ConfigReader(object): def __init__(self,path): self.CReader=configparser....
  • option:就是ini文件存放数据 如下: server为section,用[]定义,py语法格式不适用,=号不需要用空格隔开,字符串也不需要加引号 [server] base_url=http://api.keyou.site:8000 auth_type=lemonban.v3 ...
  • Python读取ini文件需要用到ConfigParser 模块 关于ConfigParser模块介绍详情请参照官网解释:https://docs.python.org/2.7/library/configparser.html 要读取的ini文件(configfile.ini)如下: 以"...
  • TIP:红警、骑砍这两个配置文件的ini是明码写在系统里。 现在比较推荐用键值…… 但是我自己话,因为没有啥可以保密,就直接用ini了。 ———————————————————————————— 上网
  • 需要将这些数据写入配置文件,将数据和代码分离,只需要修改配置文件的参数,就可以快速完成环境的切换或者测试数据的更新,常用的配置文件格式有ini、json、yaml等,下面简单给大家介绍下,Python如何读写这几种...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,710
精华内容 684
关键字:

python的配置文件ini

python 订阅