python基础 ---ini文件的操作汇总,configparser模块

文章目录


ini配置文件

[DEFAULT]
a = test
[mysql]
default-character-set=utf8
[mysqld]
datadir =/dbserver/data
port = 33060
character-set-server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

中括号部分称为section,在每个section中,包含若干个key-value对,其中key称为option。另外DEFAULT是默认section,需要大写

configparser模块

对于ini格式的文件。可以将其当作一个字典来处理,每个section可以看成是一个字典元素{section:items},每个item也可以看作是一个key-value对。因此ini文件可以看成是一个嵌套的字典。

configparser的Configparser类

read(filenames, encoding=None) #用于读取ini文件或是ini文件列表,也可以指定文件编码

configparser的一些方法

sections() #返回ini文件的所有section,不包括DEFAULT
add_section(section_name) #增加一个section
has_section(section_name) #判断section是否存在

options(section) #返回某个section下的所有key
has_option(section, option) #判断某个section下是否存在指定key
get(section, option, *, raw=False, vars=None[, fallback]) #取出某个section下指定key的值
getint(...)
getfloat(...)
getboolean(...) #这三个方法和get一样,不过取到的值会转换成指定的数据类型

items(raw=False, vars=None) #返回所有section名字及此section的对象名称
items(section, raw=False, vars=None) #返回指定section下的key-value对组成的二元组

remove_section(section) #移除指定section以及section下的所有option
remove_section(section, option)#移除指定section下的指定option

配置写入
上面的所有方法对文件进行的操作都存在于内存中,因此,想要修改生效就需要写入操作

cfg = Configparser() #实例化一个操作符 
cfg.read(filename1)  #先读取一个文件的内容
...                #省略号中可以进行一些操作,上面已经列出
with open(filename2, 'w+') as f:  
 	cfg.write(f) #将配置写入指定的新的文件

直接上代码:

from configparser import ConfigParser

filename = './config.ini'
outputfile = './config2.ini'

cfg2 = ConfigParser()
cfg2.read(filename)

for section in cfg2.sections():
    print(section)
    print(cfg2.items(section))
    print(cfg2.options(section))
for k,v in cfg2.items():  #返回的是section的name和objname
    print(k, v)
    print('#######')
print(cfg2.getfloat('mysqld', 'port'))

if cfg2.has_section('Test'): #根据需要增加一个section
    print('####')
else:
    cfg2.add_section('Test')
    
#通过操作字典的方式来操作   
cfg2.set('Test', 'name', 'xiejiawen')
cfg2['Test']['name'] = 'zhangsan'

with open(outputfile, 'w+') as f: #先将修改更新到文件中
    cfg2.write(f)

cfg = ConfigParser() #此处重新实例化一个操作符
cfg.read(filename)  #读取文件中的内容
with open('./test.ini', 'w') as a: #写入当前目录下的test.ini文件中
    cfg.write(a)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值