前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python操作配置文件的神器configparser

Python操作配置文件的神器configparser

作者头像
Python研究所
发布2022-06-17 09:14:49
3820
发布2022-06-17 09:14:49
举报
文章被收录于专栏:大飞的部落阁大飞的部落阁

背景

在实际工作中,我们经常会用到配置文件,对于配置文件的读写是基本操作,今天我们就一起来学习如何用 Python 轻松实现配置文件的读写操作。

关于 configparser

configparserPython 内置的解析配置文件的库,他可以实现对 ini 文件的读写,同时也可以对配置文件中的占位符进行解析,总之是一个很好用,很有用的库。

怎么用 configparser

创建配置文件

创建一个名为 info.ini 的配置文件,内容如下:

代码语言:javascript
复制
[base]
name = phyger
age = 18

[nova]
port = 9292
user = nova
pwd = t@123

以上,带方括号字符名为 section,即配置块。形如k=v 格式的字符名为 option,即配置项。

读取配置

配置文件和代码在同路径下,代码如下:

代码语言:javascript
复制
import configparser

config=configparser.ConfigParser()

config.read('info.ini')
print(config)

输出如下:

代码语言:javascript
复制
<configparser.ConfigParser object at 0x000001CCBC3B8AC8>

如上,config 为一个 ConfigParser 对象。

读取 section

代码语言:javascript
复制
import configparser

config=configparser.ConfigParser()

config.read('info.ini')
print(config['base'])

输出如下:

代码语言:javascript
复制
<Section: base>

如上,返回结果为一个 Section 对象名为 base

读取 option-1

代码语言:javascript
复制
import configparser

config=configparser.ConfigParser()

config.read('info.ini')
print(config['base']['name'])

输出如下:

代码语言:javascript
复制
phyger

如上,返回了配置文件中,base 配置块中的 name 的值为 phyger

读取 option-2

代码语言:javascript
复制
import configparser

config=configparser.ConfigParser()

config.read('info.ini')
print(config.get('base','name'))

使用 get 方法和上面的切片法得出的结果是一致的。

读取 section 中的 option 列表

代码语言:javascript
复制
import configparser

config=configparser.ConfigParser()

config.read('info.ini')
print(config.items('base'))

输出如下:

代码语言:javascript
复制
[('name', 'phyger'), ('age', '18')]

插值表达式的应用

修改配置文件如下:

代码语言:javascript
复制
[base]
name = phyger
age = 18
msg = %(name)s-%(age)s

[nova]
port = 9292
user = nova
pwd = t@123

代码:

代码语言:javascript
复制
import configparser

config=configparser.ConfigParser()

config.read('info.ini')
print(config.get('base','msg'))

输出如下:

代码语言:javascript
复制
phyger-18

配置写入

需求:新增一个名为 hellosection,添加一条 option

代码语言:javascript
复制
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)

写入后的配置文件:

代码语言:javascript
复制
[base]
name = phyger
age = 18
msg = %(name)s-%(age)s

[nova]
port = 9292
user = nova
pwd = t@123

[hello]
key = value

实战

代码运行过程中修改 option,后续代码能够用到新的 option

代码语言:javascript
复制
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)

输出如下:

代码语言:javascript
复制
on start, my name is phyger
after modified, my name is flyboy
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 关于 configparser
  • 怎么用 configparser
    • 创建配置文件
      • 读取配置
        • 读取 section
          • 读取 option-1
            • 读取 option-2
              • 读取 section 中的 option 列表
                • 插值表达式的应用
                  • 配置写入
                  • 实战
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档