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','')
select(filepath,cp) print('删除port:')
delete_option(filepath,cp,sectionname,'port')
select(filepath,cp) print('增加port:')
insert(filepath,cp,sectionname,['port'],[''])
select(filepath,cp) #操作完成后删除section
trans2normal(filepath)
以上仅作为参考,有更好思路请留言交流
python之读取配置文件模块configparser(三)高级使用---非标准配置文件解析的更多相关文章
- Python之配置文件模块 ConfigParser
写项目肯定用的到配置文件,这次学习一下python中的配置文件模块 ConfigParser 安装就不说了,pip一下即可,直接来个实例 配置文件 project.conf [db] host = ' ...
- python day 9: xlm模块,configparser模块,shutil模块,subprocess模块,logging模块,迭代器与生成器,反射
目录 python day 9 1. xml模块 1.1 初识xml 1.2 遍历xml文档的指定节点 1.3 通过python手工创建xml文档 1.4 创建节点的两种方式 1.5 总结 2. co ...
- python基础-7.3模块 configparser logging subprocess os.system shutil
1. configparser模块 configparser用于处理特定格式的文件,其本质上是利用open来操作文件. 继承至2版本 ConfigParser,实现了更多智能特征,实现更有可预见性,新 ...
- Python基础之常用模块(三)
1.configparser模块 该模块是用来对文件进行读写操作,适用于格式与Windows ini 文件类似的文件,可以包含一个或多个节(section),每个节可以有多个参数(键值对) 配置文件的 ...
- Python学习 :常用模块(三)----- 日志记录
常用模块(三) 七.logging模块 日志中包含的信息应有正常的程序访问日志,还可能有错误.警告等信息输出 python的 logging 模块提供了标准的日志接口,你可以通过它存储各种格式的日志, ...
- python函数和常用模块(三),Day5
递归 反射 os模块 sys模块 hashlib加密模块 正则表达式 反射 python中的反射功能是由以下四个内置函数提供:hasattr.getattr.setattr.delattr,改四个函数 ...
- python之读取配置文件模块configparser(一)基本操作
configparser模块是读取类ini文件使用,其有固定的读取格式如下: [section1] option11 = value11 option12 = value12 .... [sectio ...
- python之读取配置文件模块configparser(二)参数详解
configparser.ConfigParser参数详解 从configparser的__ini__中可以看到有如下参数: def __init__(self, defaults=None, dic ...
- Python urllib和urllib2模块学习(三)
build_opener()详解: 1.urllib2.urlopen()函数不支持验证.cookie或者其它HTTP高级功能,要支持这些功能,必须使用build_opener()函数创建自定这句话的 ...
随机推荐
- Linux进程和端口互相查看方法
一.查找应用进程的端口 ps -ef |grep mysql 查看进程 ps:将某个进程显示出来 -A 显示所有程序. -e 此参数的效果和指定"A"参数相同. -f 显示UID ...
- html动画实现
1.目标动图 2.主要代码 <p><img src="http://img.baidu.com/hi/jx2/j_0043.gif"/><img sr ...
- Maven导入项目时报错 Could not calculate build plan
Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.2 or one of its d ...
- Win10 Store 还原
Get-AppxPackage -allusers | Select Name, PackageFullName Add-appxpackage -register "C:\Program ...
- JSPatch 热更新
JSPatch 是一个 iOS 动态更新框架,只需在项目中引入极小的引擎,就可以使用 JavaScript 调用任何 Objective-C/Swift 原生接口. 获得脚本语言的优势,为项目动态添加 ...
- 1095 A+B for Input-Output Practice (VII)
一直presentation不对 ,看了别人的解释,还是不知道为什么最后还要\n http://acm.hdu.edu.cn/showproblem.php?pid=1095 #include< ...
- 通过游戏来学习CSS的Flex布局
在复习Flex 布局的时候发现的了几个有趣的小游戏,在这里分享并记录几个有难度的答案 1. Flexbox Froggy 通过调整CSS样式来使各种青蛙回到对应的荷叶上,游戏默认难度为Beginner ...
- 最简单的原生js和jquery插件封装
最近在开发过程中用别人的插件有问题,所以研究了一下,怎么封装自己的插件. 如果是制作jquery插件的话.就将下面的extend方法换成 $.extend 方法,其他都一样. 总结一下实现原理: 将 ...
- python学习:字符串
字符串 #字符串操作# 对应操作:# 1.重复输出字符串# print('hello'*2)# 2.[],[:]通过索引获取字符串中字符,这里和列表的切片操作是相同的,具体内容见列表#print('h ...
- 服务器黑屏,只出现cmd窗口的解决办法
先上图,如图所示,正常启动或者进入安全模式都出现此现象,尝试了各种办法,比如: 1.打开此页面后,重新开一台可以远程的电脑连接,此方法不通: 2.进任务管理器无explorer.exe进程,且创建此进 ...