python模块---configparser 编辑ini文件

  • configparser模块中提供了ConfigParser类来对ini文件处理
  • 可以将section看成字典的key,options是value,则每一个option是嵌套的key:value
  • 可以看做为有序的字典,orderdict

读取

import configparser

mysql_conf = configparser.ConfigParser()

读取ini文件,可以是单个文件,也可以是多个文件,在mysql_conf原地修改

mysql_conf.read('my.ini')

获取sections,不包含默认

print(mysql_conf.sections())

获取options of section

print(mysql_conf.options('mysqld'))

获取sections包含默认

print([i for i in mysql_conf.items()])

获取sections对应的options(同时可以解读为,如果items不指定section,则返回所有的section)

print([mysql_conf.items(i) for i,j in mysql_conf.items[] ])

判断sections中是否有mysqld,及下的options

print(mysql_conf.has_section('mysqld'))
print(mysql_conf.has_option('mysqld','port'))

获取mysld的port,如果不存在返回缺省值,不会报错

print(mysql_conf.get('mysqld','port',fallback='3306'))

mysql_conf.getint()

mysql_conf.getfloat()

mysql_conf.boolen()

与get的方法相同,只是做了类型转换

写入

写入的方法发生在内存中,需要通过文件对象写入磁盘

使用add写入一个section,如果存在则报错,则先进行判断

if not mysql_conf.has_section('title'):mysql_conf.add_section('title')

在section存在的情况下写入一个option

if not mysql_conf.has_section('title'):mysql_conf.add_section('title')
mysql_conf.set('title','name','zabbix')

写入后需要通过文件对象写入磁盘

with open('my.ini','w') as f:
mysql_conf.write(f)

用字典的方式写入

section存在的情况下(不存在则报错),写入一个option,如果key存在则覆盖,如果不存在则在该section进行追加

mysql_conf['write']['k1'] = 'v1'

section可以不存在,不存在直接创建写入,如果存在则进行覆盖

mysql_conf['write'] = {'k2':'v2','k3':'v3'}

同样修改后进行写入

with open('my.ini','w') as f:
mysql_conf.write(f)

删除

if mysql_conf.has_section('body'):
mysql_conf.remove_section('body')
if mysql_conf.has_option('write','k2'):
mysql_conf.remove_option('write','k2')

posted @ 2020-07-16 23:40  zoer  阅读(313)  评论(0)    收藏  举报