Python之路----------ConfigParser模块
Python的ConfigParser
废话不说,拿去用
#coding=utf-8 import configparser
'''
基於Python3.0版本寫的配置文件的創建、增加、刪除、修改等方法
'''
def search(ini_file,section,option=None):
'''
查找配置文件节点的所有属性
:param ini_file: 要查找的配置文件
:param section: 输入查找的节点名
:return: 返回这个节点下面的所有键值对
'''
config = configparser.ConfigParser()
config.read(ini_file)
if option == None:
dic = {}
for op in config.sections():
if op == section:
for k in config.items(op):
dic[k[0]] = k[1]
return dic
else:
return config.get(section, option) def add(ini_file, section, **kwargs):
'''
添加配置文件节点属性K:V
:param ini_file: 要添加的文件名字
:param section: 要添加的节点名字
:param kwargs: 节点下面option(键值对)
:return:
'''
config = configparser.ConfigParser()
config.read(ini_file)
config[section] = kwargs
with open(ini_file, 'w') as configfile:
config.write(configfile)
return True def modify(ini_file, section, **kwargs):
'''
修改配置文件的节点属性的K:V
:param ini_file: 要修改的文件
:param section: 节点名字
:param kwargs: 要修改的节点Key的value
:return: 没有返回值
'''
config = configparser.ConfigParser()
config.read(ini_file)
for k in kwargs.items():
config.set(section, k[0], str(k[1]))
config.write(open(ini_file, "w"))
return True def deleate(ini_file, section, option=None):
'''
删除指定的节点或者指定节点下面的属性
:param ini_file:配置文件
:param section:节点名字
:param option:节点option(鍵值對)
:return:
'''
config = configparser.ConfigParser()
config.read(ini_file)
if not option:
config.remove_section(section)
else:
config.remove_option(section, option)
config.write(open(ini_file, "w"))
return True def creat_ini(ini_file, **kwargs):
'''
创建全新的配置文件
:param ini_file: 新配置文件的名字
:param kwargs: 格式参考下面的字典,option的key都是节点名字,每个key的value都是属性及属性值
dic = {"DEFAULT": {},
"mobile1": {},
"mobile2": {"number": "14420000000", "user":"False"},
"mobile3": {"number": "14430000000", "user": "False"},
"mobile4": {"number": "14440000000", "user": "False"},
"mobile5": {"number": "14450000000", "user": "False"}}
:return:
'''
config = configparser.ConfigParser()
l = [i for i in kwargs]
for x in l:
config[x] = kwargs[x]
config.write(open(ini_file, "w"))
return True
基於Python3.0版本寫的配置文件的創建、增加、刪除、修改等方法
#coding=utf-8 import ConfigParser
'''
基于Python2.7版本的配置文件的创建、查找、添加、修改、删除等操作
''' def creat_ini(ini_file, **kwargs):
'''
创建全新的配置文件
:param ini_file: 新配置文件的名字
:param kwargs: 格式参考下面的字典,option的key都是节点名字,每个key的value都是属性及属性值
option = {"mobile1": {},
"mobile2": {"number": "14420000000", "user":"False"},
"mobile3": {"number": "14430000000", "user": "False"},
"mobile4": {"number": "14440000000", "user": "False"},
"mobile5": {"number": "14450000000", "user": "False"}}
:return:
'''
config = ConfigParser.ConfigParser()
l = [i for i in kwargs]
for section in l:
config.add_section(section)
if len(kwargs[section]) != 0:
for k in kwargs[section].items():
config.set(section, k[0], str(k[1]))
config.write(open(ini_file, "w"))
return True def search_ini(ini_file,section,option=None):
'''
查询section下面所有kv,查询制定node制定option值
:param ini_file: 配置文件名字
:param section: 要添加的节点名字
:param option: 节点下面键名
'''
config = ConfigParser.ConfigParser()
config.read(ini_file)
if option == None:
dic = {}
for k in config.items(section):
dic[k[0]]=k[1]
return dic
else:
return config.get(section,option) def add_ini(ini_file,section,**kwargs):
'''
添加配置文件节点属性K:V
:param ini_file: 要添加的文件名字
:param section: 要添加的节点名字
:param kwargs: 节点下面键值对
:return:
'''
config = ConfigParser.ConfigParser()
config.read(ini_file)
if config.has_section(section):
for k in kwargs.items():
config.set(section, k[0], k[1])
else:
config.add_section(section)
for k in kwargs.items():
config.set(section, k[0], k[1])
with open(ini_file, 'w') as configfile:
config.write(configfile)
return True def modify_ini(ini_file, section, **kwargs):
'''
修改配置文件的节点属性的K:V
:param ini_file: 要修改的文件
:param section: 节点名字
:param kwargs: 要修改的节点Key的value
:return: 没有返回值
'''
config = ConfigParser.ConfigParser()
config.read(ini_file)
for k in kwargs.items():
config.set(section, k[0], str(k[1]))
with open(ini_file, 'w') as configfile:
config.write(configfile) return True def del_ini(ini_file,section,option = None):
'''
删除指定的节点或者指定节点下面的属性
:param ini_file:配置文件
:param section:节点名字
:param option:节点属性
:return:
'''
config = ConfigParser.ConfigParser()
config.read(ini_file)
if config.has_section(section):
if not option:
config.remove_section(section)
config.write(open(ini_file, "w+"))
return True
else:
if config.has_option(section,option):
config.remove_option(section, option)
config.write(open(ini_file, "w+"))
return True
else:
print("删除失败,《%s》没有《%s》option!!" % (section,option))
return False
else:
print("删除失败,section《%s》不存在" % section)
return False
基於Python2.7版本寫的配置文件的創建、增加、刪除、修改等方法
Python之路----------ConfigParser模块的更多相关文章
- python:利用configparser模块读写配置文件
在自动化测试过程中,为了提高脚本的可读性和降低维护成本,将一些通用信息写入配置文件,将重复使用的方法写成公共模块进行封装,使用时候直接调用即可. 这篇博客,介绍下python中利用configpars ...
- Python 标准库 ConfigParser 模块 的使用
Python 标准库 ConfigParser 模块 的使用 demo #!/usr/bin/env python # coding=utf-8 import ConfigParser import ...
- Python自动化测试 (二) ConfigParser模块读写配置文件
ConfigParser 是Python自带的模块, 用来读写配置文件, 用法及其简单. 直接上代码,不解释,不多说. 配置文件的格式是: []包含的叫section, section 下有op ...
- python之路:模块初识
python王者开发之路:模块初识 模块初识我现在讲的确有点早.不过没关系,后面我会详细说模块. 模块,也就是库,是python三剑客之一.这三剑客,函数.库和类,都是由程序编写而成的.之所以我先说模 ...
- python:实例化configparser模块读写配置文件
之前的博客介绍过利用python的configparser模块读写配置文件的基础用法,这篇博客,介绍下如何实例化,方便作为公共类调用. 实例化的好处有很多,既方便调用,又降低了脚本的维护成本,而且提高 ...
- Python操作配置文件configparser模块
在实际的开发过程中,我们常有操作ini格式和conf格式配置文件的操作,Python为我们提供了configparser模块,方便我们对配置文件进行读写操作. config.ini配置文件内容如下: ...
- Python之路-numpy模块
这里是首先需要安装好Anaconda Anaconda的安装参考Python之路-初识python及环境搭建并测试 配置好环境之后开始使用Jupyter Notebook 1.打开cmd,输入 jup ...
- python学习之 - configparser模块
configparser模块功能:用于生成和修改常见配置文件.基本常用方法如下: read(filename):直接读取配置文件write(filename):将修改后的配置文件写入文件中.defau ...
- python之路——常用模块
阅读目录 认识模块 什么是模块 模块的导入和使用 常用模块一 collections模块 时间模块 random模块 os模块 sys模块 序列化模块 re模块 常用模块二 hashlib模块 con ...
随机推荐
- [C++][数据结构][算法]单链式结构的深拷贝
深拷贝(deep-copy),区别于浅拷贝,表示复制所有数据,而不是像浅拷贝一般只复制指针.深拷贝的数据不会因原始数据被delete后而消失. 单链式结构可以实现单链表,栈,队列,树等数据结构.掌握了 ...
- webbench之编译安装(一)
1.编译安装: 1 2 3 4 [root@hexuweb102 ~]$wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.tar ...
- Linux学习笔记(6)-文件I/O
持续一个礼拜的出差终于结束了,本次出差真是收益良多,不仅品尝了正宗的大闸蟹,同时也是第一次体验了产品的现场实施流程. 明天开始继续学习Linux! ----------------------分割线- ...
- BZOJ 3105 [CQOI2013]新Nim游戏 ——线性基
[题目分析] 神奇的题目,两人都可以第一次取走足够多堆的石子. nim游戏的规则是,如果异或和为0,那么就先手必输,否则先手有必胜策略. 所以只需要剩下一群异或和为0就可以了. 先排序,线性基扫一遍即 ...
- 数论 - Vanya and Computer Game
Vanya and his friend Vova play a computer game where they need to destroy n monsters to pass a level ...
- js简单放羊式单元测试-上
这是看了很多js单元测试资料后第一次自己做单元测试,因为资料都在介绍工具怎么使用,js单元测试的工具是在是太多了,各种风格,各种支持的,新的旧的,so 还是自己动手来体验一次 简单 是我给自己的需求很 ...
- uva10986 堆优化单源最短路径(pas)
var n,m,s,t,v,i,a,b,c:longint;//这道题的代码不是这个,在下面 first,tr,p,q:..]of longint; next,eb,ew:..]of longint; ...
- VS2013 - 自定义新建文件模版
一直想统一下项目中的关于-(新建文件时,添加个人信息,如:创建者,创建时间等个性化信息). 从网络上学习到方法很简单,只需要把IDE安装目录下的模板进行修改保存,即可每次创建拥有固定的模板呈现. 具体 ...
- Python In Action:三、稍稍扩展
#!/usr/bin/env python """Spare.py is a starting point for simple wxPython programs.&q ...
- 简明 Git 命令速查表(中文版)
原文引用地址:https://github.com/flyhigher139/Git-Cheat-Sheet/blob/master/Git%20Cheat%20Sheet-Zh.md在Github上 ...