我是靠谱客的博主 合适毛巾,最近开发中收集的这篇文章主要介绍Python3: ini 配置文件解析器 ConfigParser1. ConfigParser 解析器2. 解析 ini 配置文件3. 配置保存为 ini 文件,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
本文链接: https://xiets.blog.csdn.net/article/details/117579793
Python3 学习笔记(目录)
configparser
配置文件解析器。此模块用于处理类似于 Windows 的 .ini
配置文件。配置文件中有多个节(section
),每个节下可以存储多个 name=value 的字段(option
)。
Python 官网文档: configparser — 配置文件解析器
1. ConfigParser 解析器
configparser.ConfigParser
类的常用属性和方法:
构造方法:
# 解析器的构造方法, 创建一个解析器
class configparser.ConfigParser(defaults=None,
dict_type=dict,
allow_no_value=False,
delimiters=('=', ':'),
comment_prefixes=('#', ';'),
inline_comment_prefixes=None,
strict=True,
empty_lines_in_values=True,
default_section=configparser.DEFAULTSECT,
interpolation=BasicInterpolation(),
converters={})
读取方法:
# 读取并解析 ini 格式的配置文件(可以是单个文件/str 或 多个文件组成的文件列表/list)
read(filenames, encoding=None)
# 从 f 读取并解析配置数据, 它必须是一个产生 Unicode 字符串的可迭代对象(例如以文本模式打开的文件)。
read_file(f, source=None)
# 从字符串中解析配置数据
read_string(string, source='<string>')
# 从任意一个提供了类似于字典的 items() 方法的对象加载配置
read_dict(dictionary, source='<dict>')
# 返回可用节的列表(由节的名称组成), 不包括 [DEFAULT] 节,
# 如: ['section_name1', 'section_name2', ...]
sections()
# 返回由 [DEFAULT] 节的 options 组成的字典
defaults()
# 是否有指定名称的节, 不包括 [DEFAULT] 节
has_section(section)
# 返回指定节名称的可选项列表(由字段名称组成), 包括 [DEFAULT] 中的 options
# 如: ['option_name1', 'option_name2', ...]
# 不存在将抛出 NoSectionError 异常。
options(section)
# 指定节名称的 section 中是否有一个 option 字段
has_option(section, option)
# 返回 section 中的所有 option 的 (name, value) 对组成的列表, 包括 [DEFAULT]
items(section, raw=False, vars=None)
# 获取指定名称的 section 中的一个 option 的值, 返回 str 类型。不存在将抛出 KeyError 异常。
get(section, option, *, raw=False, vars=None[, fallback])
# get() 方法获取的值转换为 int
getint(section, option, *, raw=False, vars=None[, fallback])
# get() 方法获取的值转换为 float
getfloat(section, option, *, raw=False, vars=None[, fallback])
# get() 方法获取的值转换为 bool。
# '1', 'yes', 'true' 和 'on' 将返回 True;
# '0', 'no', 'false' 和 'off' 将返回 False。
getboolean(section, option, *, raw=False, vars=None[, fallback])
写入方法:
# 如果给定的 section 存在,则将所给出的 option 设为指定的 value 值
set(section, option, value)
# 添加名名称为 section 的节, 如果已存在将抛出异常
add_section(section)
# 移除 section 中的 option
remove_option(section, option)
# 移除指定的 section
remove_section(section)
# 将所有配置写入指定的 file object, 该对象必须以文本模式打开。
write(fileobject, space_around_delimiters=True)
2. 解析 ini 配置文件
一个 ini 配置文件:config.ini
[DEFAULT]
common1 = common default
common2 = 1000
[Hello]
ki = 100
kf = 3.14
ks = hello world
kb1 = yes
kb2 = no
aa.bb = = cc [ dd
[github.com]
User = System
Passwd = 123456
解析 config.ini
配置文件:
import configparser
# 创建配置文件解析器
config = configparser.ConfigParser()
# 读取并解析配置文件
config.read("config.ini")
# [DEFAULT] 节的字典
print(config.defaults()) # {'common1': 'common default', 'common2': '1000'}
# [DEFAULT] 除外的所有节
print(config.sections()) # ['Hello', 'github.com']
# [github.com] 节中的所有 option 的 names, 包括 [DEFAULT]
print(config.options("github.com")) # ['user', 'passwd', 'common1', 'common2']
# 判断是否有指定名称的节
print(config.has_section("Hello")) # True
print(config.has_section("hello")) # False(区分大小写)
# 判断指定 section 中是否存在指定 option
print(config.has_option("github.com", "User")) # True
print(config.has_option("github.com", "UsEr")) # True(不区分大小写)
# 获取 option 的值
print(config.get("DEFAULT", "common1")) # 'common default'
print(config.get("Hello", "common1")) # 'common default'
print(config["DEFAULT"]["common2"]) # '1000'(可以直接使用索引访问)
print(config.get("Hello", "ki")) # '100'
print(config.get("Hello", "kf")) # '3.14'
print(config.get("Hello", "ks")) # 'hello world 你好 世界'(自动移除首位空格)
print(config.get("Hello", "kb1")) # 'yes'
print(config.get("Hello", "kb2")) # 'no'
print(config.get("Hello", "aa.bb")) # '= cc [ dd'
print(config.get("github.com", "User")) # 'System'
print(config.get("github.com", "uSeR")) # 'System'(不区分大小写)
print(config.getint("Hello", "ki")) # 100
print(config.getfloat("Hello", "kf")) # 3.14
print(config.getfloat("Hello", "ki")) # 100.0
print(config.getboolean("Hello", "kb1")) # True
print(config.getboolean("Hello", "kb2")) # False
3. 配置保存为 ini 文件
沿用前面示例的 config.ini
文件:
import configparser
# 创建配置文件解析器
config = configparser.ConfigParser()
# 读取并解析配置文件
config.read("config.ini")
# 移除 节
config.remove_section("Hello")
# 移除 option
config.remove_option("DEFAULT", "common1")
# 设置 节 的 option 的值
config.set("github.com", "User", "Hello")
# 添加 节
config.add_section("World")
# 设置 节 的 option 的值
config.set("World", "names", "bb")
# 将所有配置写入文件
with open("config2.ini", "wt") as f:
config.write(f)
查看 config2.ini
文件:
[DEFAULT]
common2 = 1000
[github.com]
user = Hello
passwd = 123456
[World]
names = bb
最后
以上就是合适毛巾为你收集整理的Python3: ini 配置文件解析器 ConfigParser1. ConfigParser 解析器2. 解析 ini 配置文件3. 配置保存为 ini 文件的全部内容,希望文章能够帮你解决Python3: ini 配置文件解析器 ConfigParser1. ConfigParser 解析器2. 解析 ini 配置文件3. 配置保存为 ini 文件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复