configparser 配置文件不再难 | Python 主题月

简介: configparser 配置文件不再难 | Python 主题月

背景


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


关于 configparser


configparserPython 内置的解析配置文件的库,他可以实现对 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
复制代码


配置写入


需求:新增一个名为 hellosection,添加一条 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
相关文章
|
6月前
|
数据采集 自然语言处理 算法
如何使用Python的Gensim库进行自然语言处理和主题建模?
使用Gensim库进行Python自然语言处理和主题建模,包括:1) 安装Gensim;2) 导入`corpora`, `models`, `nltk`等相关模块;3) 对文本数据进行预处理,如分词和去除停用词;4) 创建字典和语料库;5) 使用LDA算法训练模型;6) 查看每个主题的主要关键词。代码示例展示了从数据预处理到主题提取的完整流程。
168 3
|
3月前
|
XML Shell API
python ConfigParser、shutil、subprocess、ElementTree模块简解
python ConfigParser、shutil、subprocess、ElementTree模块简解
|
2月前
|
Rust Python
Python 解析 toml 配置文件
Python 解析 toml 配置文件
42 1
|
2月前
|
Python
Python 解析 yaml 配置文件
Python 解析 yaml 配置文件
39 0
|
2月前
|
Python
Python 解析 ini 配置文件
Python 解析 ini 配置文件
33 0
|
3月前
|
Python
[python]从环境变量和配置文件中获取配置参数
[python]从环境变量和配置文件中获取配置参数
|
3月前
|
机器学习/深度学习 计算机视觉 Python
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
深度学习项目中在yaml文件中定义配置,以及使用的python的PyYAML库包读取解析yaml配置文件
103 0
|
3月前
|
测试技术 数据安全/隐私保护 网络虚拟化
干货 | 如何用python实现每天定时备份交换机配置文件? 真香~
干货 | 如何用python实现每天定时备份交换机配置文件? 真香~
|
3月前
|
Python
原创 | 如何在H3C设备上执行Python脚本实现配置文件的替换?
原创 | 如何在H3C设备上执行Python脚本实现配置文件的替换?
|
4月前
|
数据采集 自然语言处理 大数据
​「Python大数据」LDA主题分析模型
使用Python进行文本聚类,流程包括读取VOC数据、jieba分词、去除停用词,应用LDA模型(n_components=5)进行主题分析,并通过pyLDAvis生成可视化HTML。关键代码涉及数据预处理、CountVectorizer、LatentDirichletAllocation以及HTML文件的本地化处理。停用词和业务术语列表用于优化分词效果。
222 0
​「Python大数据」LDA主题分析模型