当前位置: 首页 > 工具软件 > ini-parser > 使用案例 >

python,ini文件格式,configparser模块处理ini文件

谢旻
2023-12-01

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


configparser模块

作用:

用来处理.ini格式文件

ini格式文件介绍:

某些平台或软件上的配置文件的非正式标准,以节(section)和键(key)构成,常用于微软Windows操作系统中。这种配置文件的文件扩展名多为INI。

  • 文件格式:

节(section)

节用方括号括起来,单独占一行,例如:

[section]

键(key)

键(key)又名属性(property),单独占一行用等号连接键名键值,例如:

name=value

注释(comment)

注释使用英文分号(;)开头,单独占一行。在分号后面的文字,直到该行结尾都全部为注释,例如:

; comment text

  • 实例

    ;应用程序配置
    [application]
    env=develop
    
    [dblist]
    dbtype=test
    v1=212
    v2=234
    

配置configparser模块

pip install configparser

configparser模块常见函数

1.导入configparser库

import configparser

2.读取文件

config=configparser.ConfigParser()
config.read(r'C:\Users\25954\Desktop\test\其他文件\my.ini',encoding='utf-8')

3.获取所有的节点

section_list=config.sections()
print(section_list)
#结果
# ['application', 'dblist']

4.获取节点下的所有键值 config.items(节点)

key_list=config.items('dblist')
print(key_list)
#结果
[('dbtype', 'test'), ('v1', '212'), ('v2', '234')]
for k,v in config.items('dblist'):
    print(k,v)

5.获得节点下某个键对应的值 config.get(节点,键值)

value1=config.get("dblist",'v1')
print(value1)
#结果
212

6.检查是否存在某个节点 config.has_section(节点),有返回True,无返回False

print(config.has_section("dblist"))
#结果
True

7.添加节点,键值。config.add_section(节点) config.set(节点,键,值)

config.add_section("v12")       #添加节点
config.set('v12','a1','123')    #添加键值
config.set('v12','a2','456')

8.写入文件对象

with open(r'C:\Users\25954\Desktop\test\其他文件\my.ini',mode='a',encoding='utf-8') as f:
    config.write(f)

运行结果

 ;应用程序配置
[application]
env=develop

[dblist]
dbtype=test
v1=212
v2=234

[v12]
a1 = 123
a2 = 456

9.删除节点,键值 config.remove_section(节点),config.remove_option(节点,键)

config.remove_option('v12','a1')
config.remove_section('v12')
with open(r'C:\Users\25954\Desktop\test\其他文件\my.ini',mode='a',encoding='utf-8') as f:
    config.write(f)

10.修改键值

config.set('v12','a1','王磊')
with open(r'C:\Users\25954\Desktop\test\其他文件\my.ini',mode='a',encoding='utf-8') as f:
    config.write(f)

案例一

将ini文件内容,转化为字典

import configparser
config=configparser.ConfigParser()
config.read(r'C:\Users\25954\Desktop\test\其他文件\my.ini',encoding='utf-8')
result={}
for sec in config.sections():
    result[sec]={k:v for k,v in config.items(sec)}
print(result)
#结果
{'application': {'env': 'develop'}, 'dblist': {'dbtype': 'test', 'v1': '212', 'v2': '234'}, 'v12': {'a1': '123', 'a2': '456'}}
 类似资料: