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()

更新于:2019年7月30日

13K+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告