python之读取配置文件模块configparser(三)高级使用---非标准配置文件解析
时间:2019-03-18
本文章向大家介绍python之读取配置文件模块configparser(三)高级使用---非标准配置文件解析,主要包括python之读取配置文件模块configparser(三)高级使用---非标准配置文件解析使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
非标准配置文件也是经常使用的,如何使用configparser来解析?
这要从configparser本身解析结构来说,configparser包含section和option,非标准配置文件只有option,那么可以人为先加上一个section最后再去掉section
思路是这样,那么就可以操作了,我们使用config.ini文件如下:
globalmd5 = functest port = 9900 address = http://sdv.functest.com
具体转换和增删改查操作参看如下代码:
import configparser import os filepath = os.path.join(os.getcwd(),'config.ini') print(filepath) sectionname = 'temp' #把普通配置文件转换为有section的文件 def trans2ini(path,sectionname): with open(path,'r') as f: f_temp = f.read() with open(path,'w') as f: f.write('[' + sectionname + ']\n' + f_temp) #转换为带section的文件 def trans2normal(path): with open(path,'r') as f: f.readline() f_temp = f.read() with open(path,'w') as f: f.write(f_temp) #查询操作 def select(filepath,configparser): configparser.read(filepath) for i in configparser.sections(): print('[' + i + ']') for k,v in configparser.items(i): print(k,'=',v) #修改操作 def update(fielpath,configparser,section,option,value): configparser.read(filepath) configparser.set(section,option,value) with open(filepath,'w+') as f: configparser.write(f) #删除option操作 def delete_option(filepath,configparser,section,option): configparser.read(filepath) configparser.remove_option(section,option) with open(filepath,'w+') as f: configparser.write(f) #删除section操作 def delete_section(filepath,configparser,section): configparser.read(filepath) configparser.remove_option(section) with open(filepath,'w+') as f: configparser.write(f) #增加操作 def insert(filepath,configparser,section,options,values): configparser.read(filepath) if section not in configparser.sections(): configparser.add_section(section) for i in range(len(options)): configparser.set(section,options[i],values[i]) with open(filepath,'w+') as f: configparser.write(f) #转换为带section的ini文件 trans2ini(filepath,sectionname) cp = configparser.ConfigParser() print('查询原始文件:') select(filepath,cp) print('修改port为8809:') update(filepath,cp,sectionname,'port','8809') select(filepath,cp) print('删除port:') delete_option(filepath,cp,sectionname,'port') select(filepath,cp) print('增加port:') insert(filepath,cp,sectionname,['port'],['8001']) select(filepath,cp) #操作完成后删除section trans2normal(filepath)
以上仅作为参考,有更好思路请留言交流
- swingbench压测Oracle小记(r12笔记第19天)
- Oracle闪回原理测试(三)(r12笔记第16天)
- 利用JS生成二维码图片,优化WEB性能及页面加载速度
- Go语言的指针 & *
- MySQL中的double write(二)(r12笔记第17天)
- 论Go语言中goroutine的使用
- WordPress发布文章同步到新浪微博失败的问题解决与分享
- 压测工具swingbench和sysbench对比(r12笔记第13天)
- 解决WordPress4.4.1不支持图片暗箱问题,Begin主题适用
- MySQL源码安装总结(r12笔记第12天)
- 全站启用SSL之后,如何兼容不支持https抓取的搜索引擎?
- sandbox和MHA快速测试(r12笔记第32天)
- 分享一个支持https的CDN及启用SSL后续问题汇总
- 分分钟搭建MySQL一主多从环境(r12笔记第31天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 自定义异常为什么性能差,我来告诉你
- GitHub比较火的springBoot实战项目
- LAMP架构应用实战—Apache服务介绍与安装02
- AWS lambda and dynamodb with Java
- 用设计模式搞定女朋友,吃什么火锅,设计模式不香吗
- LAMP架构应用实战—Apache服务基于IP的虚拟主机配置
- MySQL集群搭建—GTID方式
- MySQL主从复制集群搭建
- LAMP架构应用实战—Apache服务基于端口虚拟主机配置
- MySQL主从复制架构介绍
- MySQL行锁、表锁、间隙锁,你都了解吗
- LAMP架构应用实战—Apache服务mod_expires模块介绍
- SQL语句资源消耗分析-show profiles
- 如何找到垃圾SQL语句,你知道这个方式吗?
- 最全MySQL性能优化—索引篇