系统:Windows 10
编辑器:JetBrains PyCharm Community Edition 2018.2.2 x64
- 这个系列讲讲对ini配置文件的操作
- 今天讲讲读操作
Part 1:场景描述
- 遇到一个这样的情况,需要访问一个信息,在开发环境和生产环境会不同,例如IP信息。其中的一个解决方案就是将这些信息写在配置文件中,如ini文件
- 当然这部分信息也可以存储在数据库中,对于比较简单的信息,ini文件更加简单
.ini
文件是Initialization File缩写。其实就是一个格式为ini的文本文件。Pycharm中可以安装插件方便可视化展示
ini文件
Part 2:代码
import os
import configparser
current_path = os.path.dirname(os.path.abspath(__file__))
init_file_address = os.path.join(current_path, 'configuration.ini')
conf = configparser.ConfigParser()
conf.read(init_file_address, encoding='utf-8')
result1 = conf.get('connect_info', 'host')
print('result1=', result1)
result2 = conf.get('address_info', 'address')
print('result2=', result2)
result3 = conf.get('test3', 'host')
print('result3=', result3)
代码截图
执行结果
Part 3:部分代码解读
current_path = os.path.dirname(os.path.abspath(__file__))
获取当前py文件所在绝对地址init_file_address = os.path.join(current_path, 'configuration.ini')
,获取ini文件的绝对地址conf = configparser.ConfigParser()
定义一个解析ini文件的ConfigParser
对象conf.read(init_file_address, encoding='utf-8')
采用utf-8方式解析文件result1 = conf.get('connect_info', 'host')
获取[connect_info]下的host
值- 其中
[connect_info]
称为section - 其中host称为option
- 其中
- 其实一个ini文件有点像由多个字典构成,每个section就是一个独立的字典,option有点像字典的键,通过get获取字典对应键的值
result2 = conf.get('address_info', 'address')
返回的是广东,而不是广西,因为在ini文件中,#表示注释的意思
本文为原创作品,欢迎分享朋友圈
长按图片识别二维码,关注本公众号
Python 优雅 帅气