0.configparser先容

configparser 模块用于处理配置文件,这些文件常日保存在.ini格式中。
INI 文件构造简洁,通过分段和键值对的办法组织信息,使得它们易于阅读和编写。

1.快速上手

假设我们有一个名为 example.ini 的配置文件,其内容如下:

[DEFAULT]ServerAliveInterval = 45Compression = yesCompressionLevel = 9[bitbucket.org]User = hg[topsecret.server.com]Port = 50022ForwardX11 = no1.1 导入模块并创建配置解析器

首先须要导入模块,并创建一个 ConfigParser 工具:

from configparser import ConfigParser# 创建ConfigParser工具config = ConfigParser()1.2 读取配置文件

加载和读取这个配置文件

Python技能ConfigParser解析INI设备文件

config.read('example.ini')

如果你想确认哪些文件被成功读取了,read 方法会返回一个包含成功读取的文件名列表。

1.3 获取配置值

你可以通过配置解析器工具像操作字典一样访问任何部分(section)和选项(option)。

# 访问 'bitbucket.org' 部分下的 'User' 选项user = config['bitbucket.org']['User']print(user) # 输出: hg

如果考试测验访问不存在的键或部分,会引发 KeyError 或 NoSectionError。
为了避免程序因缺点而中断,你可以利用非常处理或检讨键是否存在。

# 办法一:利用非常处理try: user = config['bitbucket.org']['User']except KeyError: print("未找到指定的键或部分。
")# 办法二:检讨键是否存在if 'bitbucket.org' in config and 'User' in config['bitbucket.org']: user = config['bitbucket.org']['User']else: print("未找到指定的键或部分。
")

configparser 供应了一些方法来帮助你将配置值转换为特定的数据类型,这对付须要确保数据类型精确性的情形非常有用。

# getint:获取一个整数类型的配置值,如果值不能转换为整数,将引发 ValueErrorport = config.getint('topsecret.server.com', 'Port')print(port) # 输出: 50022# getfloat:获取一个浮点数类型的配置值,如果值不能转换为浮点数,将引发 ValueErrortimeout = config.getfloat('server', 'Timeout')# getboolean:获取一个布尔类型的配置值# 布尔值可以是 'true'/'yes'/'on'/'1' 中的任何一个来表示真,或者是 'false'/'no'/'off'/'0' 中的任何一个来表示假compression = config.getboolean('DEFAULT', 'Compression')# 支持自定义类型转换:支持为除了整数、浮点数和布尔值之外的其他数据类型,注册新的转换器# 定义一个转换器来处理繁芜数def complex_type(value): return complex(value)config = ConfigParser(converters={'complex': complex_type})config.read('example.ini')comp_value = config.getcomplex('Section', 'ComplexValue')1.4 修正和保存配置文件

可以直接修正配置解析器工具中的值,或添加新的部分和选项

# 修正现有的选项值config['bitbucket.org']['User'] = 'git'# 添加新的部分和选项config['default']['Browser'] = 'Firefox'1.5 写入配置文件

修正配置数据后,可以将更新写回文件,实现配置的持久化:

with open('example_modified.ini', 'w') as configfile: config.write(configfile)2.高等用法

configparser 还支持更多高等功能,如继续默认值、转换数据类型、自定义选项解析等。
通过这些功能,开拓者可以实现更繁芜的配置管理策略。
由于篇幅关系,钢铁老豆会留待往后有机会再给大家展开讲解,大家也可以参考Python官网自行学习。

欢迎点赞+收藏+评论+关注,每天学习一点Python小知识,无论根本、模块、数据剖析、深度学习和Ai,总有你感兴趣的。
我是钢铁老豆,一个30岁转行IT、自学成为算法工程师、想用Ai点亮孩子小小天下的Pythoner。