【python】configparser--配置文件解析器
【摘要】 此模块提供了它实现一种基本配置语言 ConfigParser 类,这种语言所提供的结构与 Microsoft Windows INI 文件的类似。 你可以使用这种语言来编写能够由最终用户来自定义的 Python 程序。新建 .ini 配置文件我们利用 configparser 模块新建一个 example.ini 配置文件import configparserconfig = configp...
此模块提供了它实现一种基本配置语言 ConfigParser 类,这种语言所提供的结构与 Microsoft Windows INI 文件的类似。 你可以使用这种语言来编写能够由最终用户来自定义的 Python 程序。
新建 .ini 配置文件
我们利用 configparser 模块新建一个 example.ini 配置文件
import configparser
config = configparser.ConfigParser()
config['DEFAULT'] = {'ServerAliveInterval': '45',
'Compression': 'yes',
'CompressionLevel': '9'}
config['bitbucket.org'] = {}
config['bitbucket.org']['User'] = 'hg'
config['topsecret.server.com'] = {}
topsecret = config['topsecret.server.com']
topsecret['Port'] = '50022' # mutates the parser
topsecret['ForwardX11'] = 'no' # same here
config['DEFAULT']['ForwardX11'] = 'yes'
with open('example.ini', 'w') as configfile:
config.write(configfile)
基本的配置文件,生成后是这样的:
[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes
[bitbucket.org]
User = hg
[topsecret.server.com]
Port = 50022
ForwardX11 = no
从配置文件中获取值
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'
【注】
相关的 API 相当直观。 唯一有些神奇的地方是 DEFAULT 小节,它为所有其他小节提供了默认值 。
还要注意小节中的键大小写不敏感并且会存储为小写形式
将多个配置读入单个 ConfigParser 是可能的,其中最近添加的配置具有最高优先级。
任何冲突的键都会从更近的配置获取并且先前存在的键会被保留
回退值
与字典类似,你可以使用某个小节的 get()
方法来提供回退值:
topsecret.get('Port')
# '50022'
topsecret.get('CompressionLevel')
# '9'
topsecret.get('Cipher')
topsecret.get('Cipher', '3des-cbc')
# '3des-cbc'
topsecret.get('CompressionLevel', '3')
# '9'
请注意默认值会优先于回退值。 例如,在我们的示例中 'CompressionLevel' 键仅在 'DEFAULT' 小节被指定。 如果你尝试在 'topsecret.server.com' 小节获取它,我们将总是获取到默认值,即使我们指定了一个回退值
configparser 修改ini文件
示例
import configparser
conf = configparser.ConfigParser() # 创建管理对象
conf.read('example.ini') # 读ini文件
sections = conf.sections() # 获取所有的section
print(sections) # 返回list
items = conf.items('email_163') # 获取一个section的值(对象是元组)
print(items)
# 删除一个 section中的一个item (以键值)
conf.remove_option('email_163', 'port')
# 删除一个 section
conf.remove_section('email_163')
# 添加一个section
conf.add_section('email_163')
# 往section中添加key和value(也可以作为修改某一个值)
conf.set('email_163', 'port', '3306')
# 修改section中的某一个值
conf['email_163']['port'] = "3306"
# 1.删除原文件写入
conf.write(open('example.ini', 'w'))
# 2.在原有基础上追加写入
conf.write(open('example.ini', 'a'))
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)