Python 配置文件解析器 (configparser)
Python 标准库中的 `configparser` 模块定义了读取和写入 Microsoft Windows 操作系统使用的配置文件的功能。此类文件通常具有 .INI 扩展名。
INI 文件由节组成,每个节都以 `[section]` 标题开头。在方括号中,我们可以放置节的名称。节之后是键/值条目,由 = 或 : 字符分隔。它可能包含注释,以 # 或 ; 符号为前缀。下面显示了一个示例 INI 文件:
[Settings] # Set detailed log for additional debugging info DetailedLog=1 RunStatus=1 StatusPort=6090 StatusRefresh=10 Archive=1 # Sets the location of the MV_FTP log file LogFile=/opt/ecs/mvuser/MV_IPTel/log/MV_IPTel.log Version=0.9 Build 4 ServerName=Unknown [FTP] # set the FTP server active RunFTP=1 # defines the FTP control port FTPPort=21 # Sets the location of the FTP data directory FTPDir=/opt/ecs/mvuser/MV_IPTel/data/FTPdata # set the admin Name UserName=admin # set the Password Password=admin
`configparser` 模块具有 `ConfigParser` 类。它负责解析配置文件列表并管理已解析的数据库。
使用以下语句创建 `ConfigParser` 对象:
parser = configparser.ConfigParser()
在这个类中定义了以下方法:
sections() | 返回所有配置文件节的名称。 |
has_section() | 返回给定节是否存在。 |
has_option() | 返回给定选项在给定节中是否存在。 |
options() | 返回命名节的配置选项列表。 |
read() | 读取并解析指定的配置文件。 |
read_file() | 读取并解析一个配置文件,以文件对象的形式给出。 |
read_string() | 从给定字符串中读取配置。 |
read_dict() | 从字典中读取配置。键是节名,值是包含键和值(这些键值应该存在于该节中)的字典。 |
get() | 返回命名选项的字符串值。 |
getint() | 类似于 get(),但将值转换为整数。 |
getfloat() | 类似于 get(),但将值转换为浮点数。 |
getboolean() | 类似于 get(),但将值转换为布尔值。返回 False 或 True。 |
items() | 返回一个元组列表,其中每个元组包含节中每个选项的 (名称,值)。 |
remove_section() | 删除给定的节及其所有选项。 |
remove_option() | 从给定节中删除给定选项。 |
set() | 设置给定的选项。 |
write() | 以 .ini 格式写入配置状态。 |
以下脚本读取并解析 'sampleconfig.ini' 文件
import configparser parser = configparser.ConfigParser() parser.read('sampleconfig.ini') for sect in parser.sections(): print('Section:', sect) for k,v in parser.items(sect): print(' {} = {}'.format(k,v)) print()
输出
Section: Settings detailedlog = 1 runstatus = 1 statusport = 6090 statusrefresh = 10 archive = 1 logfile = /opt/ecs/mvuser/MV_IPTel/log/MV_IPTel.log version = 0.9 Build 4 servername = Unknown Section: FTP runftp = 1 ftpport = 21 ftpdir = /opt/ecs/mvuser/MV_IPTel/data/FTPdata username = admin password = admin
`write()` 方法用于创建配置文件。以下脚本配置解析器对象并将其写入表示 'test.ini' 的文件对象。
import configparser parser = configparser.ConfigParser() parser.add_section('Manager') parser.set('Manager', 'Name', 'Ashok Kulkarni') parser.set('Manager', 'email', '[email protected]') parser.set('Manager', 'password', 'secret') fp=open('test.ini','w') parser.write(fp) fp.close()
广告