背景
在实际工作中,我们经常会用到配置文件,对于配置文件的读写是基本操作,今天我们就一起来学习如何用 Python 轻松实现配置文件的读写操作。
关于 configparser
configparser 是 Python 内置的解析配置文件的库,他可以实现对 ini 文件的读写,同时也可以对配置文件中的占位符进行解析,总之是一个很好用,很有用的库。
怎么用 configparser
创建配置文件
创建一个名为 info.ini 的配置文件,内容如下:
[base]
name = phyger
age = 18
[nova]
port = 9292
user = nova
pwd = t@123以上,带方括号字符名为
section,即配置块。形如k=v格式的字符名为option,即配置项。
读取配置
配置文件和代码在同路径下,代码如下:
import configparser
config=configparser.ConfigParser()
config.read('info.ini')
print(config)输出如下:
<configparser.ConfigParser object at 0x000001CCBC3B8AC8>如上,config 为一个 ConfigParser 对象。
读取 section
import configparser
config=configparser.ConfigParser()
config.read('info.ini')
print(config['base'])输出如下:
<Section: base>如上,返回结果为一个 Section 对象名为 base。
读取 option-1
import configparser
config=configparser.ConfigParser()
config.read('info.ini')
print(config['base']['name'])输出如下:
phyger如上,返回了配置文件中,base 配置块中的 name 的值为 phyger。
读取 option-2
import configparser
config=configparser.ConfigParser()
config.read('info.ini')
print(config.get('base','name'))使用 get 方法和上面的切片法得出的结果是一致的。
读取 section 中的 option 列表
import configparser
config=configparser.ConfigParser()
config.read('info.ini')
print(config.items('base'))输出如下:
[('name', 'phyger'), ('age', '18')]插值表达式的应用
修改配置文件如下:
[base]
name = phyger
age = 18
msg = %(name)s-%(age)s
[nova]
port = 9292
user = nova
pwd = t@123代码:
import configparser
config=configparser.ConfigParser()
config.read('info.ini')
print(config.get('base','msg'))输出如下:
phyger-18配置写入
需求:新增一个名为 hello 的 section,添加一条 option。
import configparser
# 创建ConfigParser对象
config=configparser.ConfigParser()
# 读取配置文件
config.read('info.ini')
print(config.get('base','msg'))
# 添加section
config.add_section('hello')
# 添加option
config['hello']['key']='value'
# 将config对象写入配置文件
with open('info.ini',mode='w') as fp:
config.write(fp)写入后的配置文件:
[base]
name = phyger
age = 18
msg = %(name)s-%(age)s
[nova]
port = 9292
user = nova
pwd = t@123
[hello]
key = value实战
代码运行过程中修改 option,后续代码能够用到新的 option。
import configparser
# 创建ConfigParser对象
config=configparser.ConfigParser()
# 读取配置文件
config.read('info.ini')
name1=config.get('base','name')
print('on start, my name is',name1)
# 修改option
config['base']['name']='flyboy'
# 将config对象写入配置文件
with open('info.ini',mode='w') as fp:
config.write(fp)
# 重新获取option (这里不需要重新read,就能拿到新的数据,可以解决py作为配置文件的无法刷新数据的问题)
name2=config.get('base','name')
print('after modified, my name is',name2)输出如下:
on start, my name is phyger
after modified, my name is flyboy在开发过程中,经常需要处理配置文件,以便存储和管理程序的各种设置和选项。Python提供了ConfigParser模块,它是一个方便而强大的配置文件解析工具。本文好学编程将介绍ConfigParser模块的基本用法、主要功能以及示例代码,帮助开发者更好地理解和应用该模块。

ConfigParser模块概述
ConfigParser模块是Python标准库中的一部分,用于解析和操作配置文件。它提供了一种简单且易于使用的方式,使开发者能够读取、写入和修改常见的配置文件格式,如INI文件。

基本用法
- 导入模块:首先,需要导入ConfigParser模块,使用以下语句:
- 创建ConfigParser对象:使用
configparser.ConfigParser()创建一个ConfigParser对象。 - 读取配置文件:通过
read()方法读取配置文件,可以传入文件名或文件对象作为参数。 - 读取配置项:使用
get(section, option)方法获取指定节(section)中的配置项(option)的值。 - 修改配置项:使用
set(section, option, value)方法修改指定节中的配置项的值。 - 写入配置文件:通过
write()方法将修改后的配置写入配置文件。
主要功能
- 支持多个节(section):配置文件可以包含多个节,每个节可以包含多个配置项。
- 支持注释:配置文件可以包含注释行,以#或;开头。
- 支持默认值:对于不存在的配置项,可以设置默认值。
- 支持类型转换:可以将配置项的值按需转换为整数、浮点数或布尔值。
- 支持写入文件:可以将对配置文件的修改写回到原始文件中。
示例代码
下面是一个简单的示例代码,展示了ConfigParser模块的基本用法
import configparser
# 创建ConfigParser对象
config = configparser.ConfigParser()
# 读取配置文件
config.read('config.ini')
# 获取配置项的值
username = config.get('User', 'username')
password = config.get('User', 'password')
# 修改配置项的值
config.set('User', 'password', 'new_password')
# 写入配置文件
with open('config.ini', 'w') as configfile:
config.write(configfile)总结
ConfigParser模块是Python中用于解析和操作配置文件的重要工具。它提供了简单且易于使用的方法,使得读取、修改和写入配置文件变得非常方便。通过ConfigParser模块,开发者可以轻松处理INI格式的配置文件,并根据需要获取、修改和保存配置项的值。对于需要存储和管理程序设置的场景,ConfigParser模块是一个强大而实用的选择。
以上就是本次分享的全部内容,想学习更多编程技巧,欢迎持续关注好学编程!





