python configparser 模块

Posted qikang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python configparser 模块相关的知识,希望对你有一定的参考价值。

configparser 模块是用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser。

示例配置文件

[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
 
[test1.net.cn]
user = test
host = localhost
port = 8080
 
[top.net.cn]
test_port = 9090
user = root
port = 2202

 

1、生成配置文件

import configparser
config = configparser.ConfigParser()
config["DEFAULT"] = {
    ServerAliveInterval:45,
    Compression:yes,
    CompressionLevel:9
}
config[test1.net.cn] = dict() # 使某一块配置等于一个字典
config[test1.net.cn][user] = test #使用键值对的方式添加一行配置
config[test1.net.cn][host] = localhost
config[test1.net.cn][port] = 8080 #所有的值都以字符串的方式传进去

config[top.net.cn] = dict() 
top = config[top.net.cn]
top[test_port] = 9090
top[user] = root
top[port] = 2202

with open(test.ini,w) as configfile:
    config.write(configfile) # 最后一定要写入到配置文件

#####################

[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9


[test1.net.cn]
user = test
host = localhost
port = 8080


[top.net.cn]
test_port = 9090
user = root
port = 2202

#####################

 

 

2、读取配置文件

 

import configparser
config = configparser.ConfigParser()
config.read(test.ini)


print (top.net.cn in config) # 判断一个sections是否在配置文件中
for key in config: # 遍历所有的sections
    print (key)
print (config.sections()) # 直接打印所有的sections
print (config.defaults()) # 获取DEFAULT的特殊方法,获取那个单独的sections,都会带有DEFALUT的值。
print (config[test1.net.cn][port]) # 获取单独的某一个记录
print (config.items(top.net.cn)) # 获取一个sections的记录
print (config.options(test1.net.cn)) # 获取test1.net.cn的sections,其中也包括DEFALUT的值
print (config.items(top.net.cn)) #获取top.net.cn的所有记录
var = config.get(top.net.cn,test_port) #获取某一个sections下的一个key的值
print (var)

# True
# DEFAULT
# test1.net.cn
# top.net.cn
# [‘test1.net.cn‘, ‘top.net.cn‘]
# OrderedDict([(‘serveraliveinterval‘, ‘45‘), (‘compression‘, ‘yes‘), (‘compressionlevel‘, ‘9‘)])
# 8080
# [(‘serveraliveinterval‘, ‘45‘), (‘compression‘, ‘yes‘), (‘compressionlevel‘, ‘9‘), (‘test_port‘, ‘9090‘), (‘user‘, ‘root‘), (‘port‘, ‘2202‘)]
# [‘user‘, ‘host‘, ‘port‘, ‘serveraliveinterval‘, ‘compression‘, ‘compressionlevel‘]
# [(‘serveraliveinterval‘, ‘45‘), (‘compression‘, ‘yes‘), (‘compressionlevel‘, ‘9‘), (‘test_port‘, ‘9090‘), (‘user‘, ‘root‘), (‘port‘, ‘2202‘)]
# 9090

 

 

3、修改配置文件

import configparser
config = configparser.ConfigParser()
config.read(test.ini)

# 删除已经存在的sections top.net.cn。
remove_sections = config.remove_section(top.net.cn)

# 如果一个sections存在,再次添加就会出现异常。所以我现在先删除,然后再添加。
# add_section = config.has_section(‘leslie‘)
config.remove_section(leslie)

# 添加一个不存在的sections。
add_section = config.add_section(leslie)

# 对已经存在的sections中添加记录。
config.set(leslie,name,xikang)

# 删除已经在sections中的一条记录。
config.remove_option(test1.net.cn,port)

# 最后一定要把这些修改写到文件中。
config.write(open(test.ini,w))

 











以上是关于python configparser 模块的主要内容,如果未能解决你的问题,请参考以下文章

Python Configparser模块读取写入配置文件

python封装configparser模块获取conf.ini值(优化版)

Python中ConfigParser模块详谈

Python configparser模块

python基础13 ---函数模块4(configparser模块)

python模块之configparser模块