概述
ini文件、xml文件和json文件属于应用系统常用的配置文件格式,本文学习Python中读写ini文件的基本方式,后续文章中陆续学习并记录Python读写其它格式配置文件的基本方式。关于ini文件的基本格式如下图所示,详细的介绍见参考文献5.
Python中的configparser模块支持读写ini文件,如果本机中没有安装该模块,可以使用pip install configparser命令安装。configparser中主要使用ConfigParser 类操作ini文件,关于该类的详细介绍请见参考文献1-3。本文中列出该类中常用的函数,其中本文测试使用的函数最主要包括read、write、sections、options、get。
序号 | 名称 | 说明 |
---|---|---|
1 | sections | 返回可用节的列表,不包括default_section,后者指定存放其他节的默认值和用于插值的特殊节的名称 (通常命名为 “DEFAULT”) |
2 | add_section | 新增节 |
3 | has_section | 检查是否存在指定节,不包括default section |
4 | options | 返回指定节中键列表 |
5 | has_option | 检查指定节中是否存在指定键 |
6 | read | 读取指定配置文件,本文中主要指ini文件 |
7 | get | 获取指定节中的指定键值,返回字符串类型,如果需要获取指定类型的值,ConfigParser类中提供了getint 、getfloat、getboolean等函数 |
8 | set | 设置指定节中的指定键值。如果给定的节存在,则将所给出的选项设为指定的值;在其他情况下将引发 NoSectionError |
9 | write | 将配置信息保存至指定文件 |
本文的测试数据及测试代码主要参考自参考文献1,ini文件的示例是执行参考文献1中的写文件示例,代码示例及执行结果如下所示:
# coding=utf-8
import configparser
config = configparser.ConfigParser()
config['DEFAULT'] = {'ServerAliveInterval': '45','Compression': 'yes','CompressionLevel': '9'}
config['bitbucket.org'] = {}
config['bitbucket.org']['User'] = 'hg'
config['topsecret.server.com'] = {}
topsecret = config['topsecret.server.com']
topsecret['Port'] = '50022' # mutates the parser
topsecret['ForwardX11'] = 'no' # same here
config['DEFAULT']['ForwardX11'] = 'yes'
with open('example.ini', 'w') as configfile:
config.write(configfile)
接着是读ini文件示例代码及执行结果,也是参考参考文献1执行的。从执行结果可以看到,正如sections的介绍所言,DEFAULT节是没有包括在sections的返回结果中,同时每节中的键值都是当前节与DEFAULT的合集,如果有重复键,则以当前节中的键为准。
# coding=utf-8
import configparser
cfg = configparser.ConfigParser()
cfg.read(r'E:MyProgramsPythontkinteriniexample.ini')
print('readed ini file')
sections = cfg.sections()
for sec in sections:
print(cfg.options(sec))
print(cfg.get('topsecret.server.com','Port'))
print('end readed ini file')
最初执行读ini文件的测试代码时,read函数的输入参数——文件路径字符串,没有带r,也没有用转义字符,但是程序执行过程没有报错,只是sections没有返回值。十行左右的代码,折腾了将近一个小时才找到原因,一直以为是ini文件出了问题,郁闷。
参考文献:
[1]https://docs.python.org/zh-cn/3/library/configparser.html#module-configparser
[2]https://www.cnblogs.com/dadadaxin/p/14974772.html
[3]https://blog.csdn.net/qdPython/article/details/125949378
[4]https://github.com/python/cpython/blob/3.10/Lib/configparser.py
[5]https://baike.baidu.com/item/ini%E6%96%87%E4%BB%B6/9718973?fr=aladdin
最后
以上就是满意大神为你收集整理的测试Python读写ini配置文件的全部内容,希望文章能够帮你解决测试Python读写ini配置文件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复