configparser模块 用于生成和修改常见配置文档,当前模块的名称在 python 3.x 版本中变更为 configparser。
来看一个好多软件的常见文档格式如下:
haproxy.conf 内容如下:
[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes
[bitbucket.org]
User = hg
[topsecret.server.com]
Port = 50022
ForwardX11 = no
如何用python生成一个这样的文档呢?
导入模块
import configparser
config = configparser.ConfigParser()
config["DEFAULT"] = {'ServerAliveInterval': '45',
'Compression': 'yes',
'CompressionLevel': '9'}
config['abcd.org'] = {}
config['abcd.org']['User'] = 'hg'
config['aaa.server.com'] = {}
topsecret = config['aaa.server.com']
topsecret['Host Port'] = '50022'
topsecret['ForwardX11'] = 'no'
config['DEFAULT']['ForwardX11'] = 'yes'
with open('example.ini', 'w') as configfile:
config.write(configfile)
把刚刚创建的example.ini文件内容读出来
import configparser
config = configparser.ConfigParser()
print(config.sections()) #打印config对象的节点sections,因为还没有数据,所以打印出来是空的。
config.read("example.ini") #读取example.ini文件
print(config.sections()) #打印config对象的sections
print("abcd.org" in config) #判断abcd.org在不在config中,返回True或False
print(config["abcd.org"]["user"]) #打印config中abcd.org节点下的user信息
print(config["DEFAULT"]["compression"]) #打印config中default节点下compression信息
print(config["aaa.server.com"]["forwardx11"]) #打印config中aaa.server.com节点下forwardx11的信息
for key in config["DEFAULT"]: #遍历config中DEFAULT中的key
print(key)
print(config["DEFAULT"][key])
现增删改查
ha.conf文件内容:
[section1]
k1 = v1
k2:v2
k3 = 3
[section2]
k1 = v1
导入模块,创建configparser对象
import configparser
config = configparser.ConfigParser()
config.read("ha.conf")
section = config.sections()
print(section)
print(config.items())
print(config.get("section1","k1"))
print(config.getint("section1","k3"))
print(config.has_option("section1","k1"))
print(config.has_option("section1","k4"))
config.remove_section("section2")
config.set("section1","k1","111")
config.add_section("section3")
config.set("section3","k1","111")
config.remove_option("section1","k2")
config.write(open("i.cfg","w"))
本文转自 506554897 51CTO博客,原文链接:http://blog.51cto.com/506554897/2046053