python常用模块之configparser模块

python常用模块之configparser

作用:解析配置文件

假设在当前目录下有这样一个conf.ini文件

[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes

[bitbucket.org]
User = hg

[topsecret.server.com]
Port = 50022
ForwardX11 = no

模块的操作

import configparser

conf = configparser.ConfigParser()  # 创建一个对象
# print(conf.sections())  # [],因为没有打开文件,所以是空的

conf.read("conf.ini")  # 读取文件内容
print(conf.sections())  # ['bitbucket.org', 'topsecret.server.com']
# 那么为什么没有DEFAULT呢?因为在每一个配置文件中都会有一个DEFAULT,这是全局默认配置的东西,打印不出来的,但是可以获取到

print(conf.default_section)  # DEFAULT

# 拿到里面的值
print(conf['bitbucket.org']['User'])  # hg  此时是知道这个配置文件中的子模块bitbucket.org里有User

# 循环
for k,v in conf['bitbucket.org'].items():
    print(k,v)
# user hg
# serveraliveinterval 45
# compression yes
# compressionlevel 9
# forwardx11 yes
那么,为啥会把DEFAULT里的打印出来呢?因为这是configparser设置的,会默认出现在每一个节点中

configparser其他的操作

# 还是以上面的conf.ini为例

import configparser
conf = configparser.ConfigParser()  # 生成一个对象
conf.read("conf.ini",encoding='utf-8')  # 读取配置文件内容

# 读
# print(dir(conf))

print(conf.options("bitbucket.org"))  # 将bitbucket.org区域里的key全部拿出,包括DEFAULT里面的,['user', 'serveraliveinterval', 'compression', 'compressionlevel', 'forwardx11']
print(conf['bitbucket.org']['User'])  # hg,拿到bitbucket.org里的User这个key的值

# 增加
conf.add_section("group1")  # 增加name区域
conf['group1']['age'] = '22'  # 增加group1区域中age这个key的值为22
conf['group1']['name'] = 'xiao'
conf.write(open("conf.ini","r+"))  # 写进文件中
conf.write(open("i.cfg","w"))  # 或者写到一个新文件中

# 删除
# conf.remove_section('group1')  # 删除整个group1区域
# conf.write(open('i.cfg','w'))

conf.remove_option('group1','name')  # 只删除group1区域里的name这个key
conf.write(open('conf.ini','w'))

猜你喜欢

转载自www.cnblogs.com/xiaoyafei/p/9037606.html