Python 基础 - 4.11 configparser处理模块

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

来看一个好多软件的常见配置文件格式如下

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

[bitbucket.org]
User = hg

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

创建这样文件

import configparser
config = configparser.ConfigParser()  
config["DEFAULT"] = {           # 所有参数必须是字符串
    "ServerAliveInterval": "45",
    "Compression": "yes",
    "CompressionLevel": "9",
    "ForwardX11": "yes"


}
config["bitbucket.org"] = {}
bitbucket = config["bitbucket.org"]
bitbucket["User"] = "hg"
config["topsecret.server.com"] = {
    "Port": "50022",
    "ForwardX11": "no",
}

config.write(open("cmz.ini","w"))

查询,修改,删除

# 查询
import configparser
config = configparser.ConfigParser()
config.read("cmz.ini")
print(config.sections()) # 查所有节点
for item in config.sections():
    print(item)

print(config["bitbucket.org"]["User"])
for i in config["bitbucket.org"]:  # 查看bitbucket.org下面的所有元素option
    print(i)

print(config.has_section("bitbucket.org")) # 判断是否有bitbucket.org节点
print(config.has_option("bitbucket.org","forwardx11"))# 判断bitbucket.org节点下是否有forwardx11
print(config.get("bitbucket.org","user"))
print(config.items("DEFAULT"))
# print(config.options("DEFAULT"))



#
# 所有修改的值必须是str set的三个参数分别是setion option value

config.set("DEFAULT","compressionlevel","10")
config.write(open(
"cmz.ini","w")) # 在覆盖源文件

# 删除
config.remove_option("DEFAULT","compressionlevel") # 删除
option config.remove_section(
"bitbucket.org")
# 删除sention包括sention下面的所有options
config.write(open(
"cmz.ini","w"))

 

解析配置文件

>>> import configparser
>>> config = configparser.ConfigParser()
>>> config.sections()
[]
>>> config.read('example.ini')
['example.ini']
>>> config.sections()
['bitbucket.org', 'topsecret.server.com']
>>> 'bitbucket.org' in config
True
>>> 'bytebong.com' in config
False
>>> config['bitbucket.org']['User']
'hg'
>>> config['DEFAULT']['Compression']
'yes'
>>> topsecret = config['topsecret.server.com']
>>> topsecret['ForwardX11']
'no'
>>> topsecret['Port']
'50022'
>>> for key in config['bitbucket.org']: print(key)
...
user
compressionlevel
serveraliveinterval
compression
forwardx11
>>> config['bitbucket.org']['ForwardX11']
'yes'

其它增删改查语法

[group1]
k1 = v1
k2:v2

[group2]
k1 = v1

import ConfigParser

config = ConfigParser.ConfigParser()
config.read('i.cfg')

# ########## 读 ##########
#secs = config.sections()
#print secs
#options = config.options('group2')
#print options

#item_list = config.items('group2')
#print item_list

#val = config.get('group1','key')
#val = config.getint('group1','key')

# ########## 改写 ##########
#sec = config.remove_section('group1')
#config.write(open('i.cfg', "w"))

#sec = config.has_section('wupeiqi')
#sec = config.add_section('wupeiqi')
#config.write(open('i.cfg', "w"))


#config.set('group2','k1',11111)
#config.write(open('i.cfg', "w"))

#config.remove_option('group2','age')
#config.write(open('i.cfg', "w"))

 

posted @ 2018-01-27 13:09  Love_always_online  阅读(147)  评论(0编辑  收藏  举报