[编程基础] Python配置文件读取库ConfigParser总结
Python ConfigParser教程显示了如何使用ConfigParser在Python中使用配置文件。
文章目录
1 介绍
ConfigParser是一个Python类,为Python程序实现基本的配置语言。它提供类似于Microsoft Windows INI文件的结构。ConfigParser允许编写可由最终用户轻松定制的Python程序。
配置文件由选项的键/值对组成。节名由[]字符分隔。这些键值对用:或=分隔。注释以#或;开头。
具体使用文档见:
https://docs.python.org/3/library/configparser.html
本文所用python语言环境为python3。python2和python3中configparser包名不一样。
configparser为python3中的包名
ConfigParser为python2中的包名
1.1 Python ConfigParser读取文件
在下面示例中,我们从文件中读取配置数据。配置文件db.ini内容如下。由两部分数据组成。
[mysql]
host = localhost
user = user7
passwd = s$cret
db = ydb
[postgresql]
host = localhost
user = user8
passwd = mypwd$7
db = testdb
以下示例读取MySQL和PostgreSQL的配置数据。
import configparser
# 启动ConfigParse
config = configparser.ConfigParser()
# 使用read()读取文件。
config.read('db.ini')
# 从mysql部分访问数据
host = config['mysql']['host']
user = config['mysql']['user']
passwd = config['mysql']['passwd']
db = config['mysql']['db']
print('MySQL configuration:')
print(f'Host: {host}')
print(f'User: {user}')
print(f'Password: {passwd}')
print(f'Database: {db}')
# 从postgresql部分访问数据
host2 = config['postgresql']['host']
user2 = config['postgresql']['user']
passwd2 = config['postgresql']['passwd']
db2 = config['postgresql']['db']
print('PostgreSQL configuration:')
print(f'Host: {host2}')
print(f'User: {user2}')
print(f'Password: {passwd2}')
print(f'Database: {db2}')
MySQL configuration:
Host: localhost
User: user7
Password: s$cret
Database: ydb
PostgreSQL configuration:
Host: localhost
User: user8
Password: mypwd$7
Database: testdb
1.2 Python ConfigParser中的节
配置数据分为多个节。在sections()读取所有节和has_section()检查是否有指定的节。
import configparser
config = configparser.ConfigParser()
config.read('db.ini')
# 获得节名
sections = config.sections()
print(f'Sections: {sections}')
sections.append('sqlite')
for section in sections:
# 判断是否有该节名
if config.has_section(section):
print(f'Config file has section {section}')
else:
print(f'Config file does not have section {section}')
Sections: ['mysql', 'postgresql']
Config file has section mysql
Config file has section postgresql
Config file does not have section sqlite
1.3 Python ConfigParser从字符串中读取数据
从Python 3.2开始,我们可以使用read_string()方法从字符串读取配置数据。
import configparser
# 字符串配置文件数据
cfg_data = '''
[mysql]
host = localhost
user = user7
passwd = s$cret
db = ydb
'''
config = configparser.ConfigParser()
config.read_string(cfg_data)
host = config['mysql']['host']
user = config['mysql']['user']
passwd = config['mysql']['passwd']
db = config['mysql']['db']
print(f'Host: {host}')
print(f'User: {user}')
print(f'Password: {passwd}')
print(f'Database: {db}')
Host: localhost
User: user7
Password: s$cret
Database: ydb
1.4 Python ConfigParser从字典中读取数据
从Python 3.2开始,我们可以使用read_dict()方法从字典中读取配置数据。
import configparser
# 字典数据
# 键是节名,值是带有该节中存在的键和值的字典。
cfg_data = {
'mysql': {'host': 'localhost', 'user': 'user7',
'passwd': 's$cret', 'db': 'ydb'}
}
config = configparser.ConfigParser()
config.read_dict(cfg_data)
host = config['mysql']['host']
user = config['mysql']['user']
passwd = config['mysql']['passwd']
db = config['mysql']['db']
print(f'Host: {host}')
print(f'User: {user}')
print(f'Password: {passwd}')
print(f'Database: {db}')
Host: localhost
User: user7
Password: s$cret
Database: ydb
1.5 Python ConfigParser写入数据
可以通过write()方法写入配置数据。以下示例将配置数据写入db3.ini文件。
import configparser
config = configparser.ConfigParser()
# 通过add_section()函数添加键
config.add_section('mysql')
config['mysql']['host'] = 'localhost'
config['mysql']['user'] = 'user7'
config['mysql']['passwd'] = 's$cret'
config['mysql']['db'] = 'ydb'
# 写入数据
with open('db3.ini', 'w') as configfile:
config.write(configfile)
db.ini中的内容如下:
[mysql]
host = localhost
user = user7
passwd = s$cret
db = ydb
1.6 Python ConfigParserj解释数据
ConfigParser允许在配置文件中解释数据。它使用%()语法。本示例用到cfg.ini如下:
[info]
users_dir= /home/ubuntu
name= Jano
home_dir= %(users_dir)s\%(name)s
我们用插值来构建home_dir。注意,“s”字符是语法的一部分。我们将解释数据
import configparser
config = configparser.ConfigParser()
config.read('cfg.ini')
users_dir = config['info']['users_dir']
name = config['info']['name']
home_dir = config['info']['home_dir']
# 读取用户路径
print(f'Users directory: {users_dir}')
# 读取用户名
print(f'Name: {name}')
# 读取完整路径
print(f'Home directory: {home_dir}')
Users directory: /home/ubuntu
Name: Jano
Home directory: /home/ubuntu/Jano
2 参考
[编程基础] Python配置文件读取库ConfigParser总结的更多相关文章
- [编程基础] Python谷歌翻译库googletrans总结
1 使用说明 本文介绍python谷歌翻译库接口googletrans的使用.具体见官方文档: https://py-googletrans.readthedocs.io/en/latest/#goo ...
- [编程基础] Python日志记录库logging总结
Python日志记录教程展示了如何使用日志记录模块在Python中进行日志记录. 文章目录 1 介绍 1.1 背景 1.2 Python日志记录模块 1.3 根记录器 2 Python logging ...
- [编程基础] Python数据生成库Faker总结
Python Faker教程展示了如何使用Faker软件包在Python中生成伪数据.我们使用joke2k/faker包. 1 介绍 Faker是一个生成假数据的Python库.伪数据通常用于测试或用 ...
- python配置文件读取
在代码实现的过程中,我们经常选择将一些固定的参数值写入到一个单独的配置文件中.在python中读取配置文件官方提供了configParser方法. 主要有如下方法(找官文): (这家伙很懒,直接复 ...
- C 构造一个 简单配置文件读取库
前言 最近看到这篇文章, json引擎性能对比报告 http://www.oschina.net/news/61942/cpp-json-compare?utm_source=tuicool 感觉技术 ...
- [编程基础] Python字符串替换笔记
Python字符串替换笔记 Python字符串替换笔记主要展示了如何在Python中替换字符串.Python中有以下几种替换字符串的方法,本文主要介绍前三种. replace方法(常用) transl ...
- [编程基础] Python命令行解析库argparse学习笔记
Python argparse教程展示了如何使用argparse模块解析Python中的命令行参数. 文章目录 1 使用说明 1.1 Python argparse可选参数 1.2 Python ar ...
- linux学习19 shell脚本基础-bash脚本编程基础及配置文件
一.shell脚本编程 1.编程语言的分类,根据运行方式 a.编译运行:源代码 --> 编译器(编译) --> 程序文件 C语言: b.解释运行:源代码 --> 运行时启动解释器,由 ...
- PythonStudy——编程基础 Python Primary
1.什么是编程语言 语言: 一个事物与另外一个事物沟通的介质 .编程语言是程序员与计算机沟通的介质. 编程: 将人类内识别的语言转化为机器能识别的指令,这种过程就叫做编程. 注:最终这些指令会被转化 ...
随机推荐
- 工厂方法在Spring源码中的运用
我们都知道Spring中IOC是使用的工厂模式,但是对于实现细节就一知半解了,今天这篇文章就带大家解读Spring中是如何使用工厂模式的. 在上篇文章中我们懂了什么是工厂模式,这篇文章就带着学过的概念 ...
- <三>从编译器角度理解C++代码编译和链接原理
1代码 点击查看代码 **sum.cpp** int gdata=10; int sum(int a,int b){ return a+b; } **main.cpp** extern int gda ...
- Docker | 发布镜像到镜像仓库
本文记录发布镜像到 DockerHub 和 阿里云镜像仓库.工作中使用的是JFrog Artifactory 和 Harbor,没有太大差别. 发布镜像到DockerHub https://hub.d ...
- Dubbo 03: 直连式 + 接口工程
进一步改正dubbo框架中简单的直连式的不足 需要用到3个相互独立的maven工程,项目1为maven的java工程作为接口工程,项目2,3为maven的web工程 工程1:o3-link-inter ...
- 基于.NetCore开发博客项目 StarBlog - (19) Markdown渲染方案探索
前言 笔者认为,一个博客网站,最核心的是阅读体验. 在开发StarBlog的过程中,最耗时的恰恰也是文章的展示部分功能. 最开始还没研究出来如何很好的使用后端渲染,所以只能先用Editor.md组件做 ...
- 空链接的作用以及<a href="#"></a>和<a href="javascript:;"></a>的区别
空链接的作用以及<a href="#"></a>和<a href="javascript:;"></a>的区别在 ...
- Python3.11正式版,它来了!
转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/b055fbf2.html 你好,我是测试蔡坨坨. 就在前几天,2022年10月24日,Python3.11正式版发布了! P ...
- IPython的使用技巧
?打印IPython简介 在IPython中直接输入?,可以打印出IPython的功能介绍 object ?内省功能 在变量后面加上?,可以打印出该变量的详细信息.例如图中一个列表对象,打印出该对象的 ...
- 看了同事这10个IDEA神级插件,我也悄悄安装了
昨天,有读者私信发我一篇文章,说里面提到的 Intellij IDEA 插件真心不错,基本上可以一站式开发了,希望能分享给更多的小伙伴,我在本地装了体验了一下,觉得确实值得推荐,希望小伙伴们有时间也可 ...
- python常用库总结
图片处理相关 # opencvy pip install opencv-python pip install opencv-contrib-python pip install matplotlib ...