背景
在实际工作中,我们经常会用到配置文件,对于配置文件的读写是基本操作,今天我们就一起来学习如何用 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
评论区