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模块的更多相关文章

  1. python:利用configparser模块读写配置文件

    在自动化测试过程中,为了提高脚本的可读性和降低维护成本,将一些通用信息写入配置文件,将重复使用的方法写成公共模块进行封装,使用时候直接调用即可. 这篇博客,介绍下python中利用configpars ...

  2. Python 标准库 ConfigParser 模块 的使用

    Python 标准库 ConfigParser 模块 的使用 demo #!/usr/bin/env python # coding=utf-8 import ConfigParser import ...

  3. Python自动化测试 (二) ConfigParser模块读写配置文件

    ConfigParser 是Python自带的模块, 用来读写配置文件, 用法及其简单. 直接上代码,不解释,不多说. 配置文件的格式是: []包含的叫section,    section 下有op ...

  4. python之路:模块初识

    python王者开发之路:模块初识 模块初识我现在讲的确有点早.不过没关系,后面我会详细说模块. 模块,也就是库,是python三剑客之一.这三剑客,函数.库和类,都是由程序编写而成的.之所以我先说模 ...

  5. python:实例化configparser模块读写配置文件

    之前的博客介绍过利用python的configparser模块读写配置文件的基础用法,这篇博客,介绍下如何实例化,方便作为公共类调用. 实例化的好处有很多,既方便调用,又降低了脚本的维护成本,而且提高 ...

  6. Python操作配置文件configparser模块

    在实际的开发过程中,我们常有操作ini格式和conf格式配置文件的操作,Python为我们提供了configparser模块,方便我们对配置文件进行读写操作. config.ini配置文件内容如下: ...

  7. Python之路-numpy模块

    这里是首先需要安装好Anaconda Anaconda的安装参考Python之路-初识python及环境搭建并测试 配置好环境之后开始使用Jupyter Notebook 1.打开cmd,输入 jup ...

  8. python学习之 - configparser模块

    configparser模块功能:用于生成和修改常见配置文件.基本常用方法如下: read(filename):直接读取配置文件write(filename):将修改后的配置文件写入文件中.defau ...

  9. python之路——常用模块

    阅读目录 认识模块 什么是模块 模块的导入和使用 常用模块一 collections模块 时间模块 random模块 os模块 sys模块 序列化模块 re模块 常用模块二 hashlib模块 con ...

随机推荐

  1. POJ 3261 Milk Patterns 后缀数组求 一个串种 最长可重复子串重复至少k次

    Milk Patterns   Description Farmer John has noticed that the quality of milk given by his cows varie ...

  2. zoj 3820(2014牡丹江现场赛B题)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5374 思路:题目的意思是求树上的两点,使得树上其余的点到其中一个点的 ...

  3. Struts2 动态方法调用

    01.Struts 2基本结构 使用Struts2框架实现用登录的功能,使用struts2标签和ognl表达式简化了试图的开发,并且利用struts2提供的特性对输入的数据进行验证,以及访问Servl ...

  4. flexBox布局 -- 兼容性

    //中间留空,两侧靠边,多行显示,每行3个,一个li的宽度是30%,最后一行,如果是两个的时候会出现异常布局,可以对最后一行的最后一个li进行right:35%,android4.4以上才支持, 所以 ...

  5. poj2104 K-th Number区间第k小值 主席树

    原来主席树就是可持久化线段树啊,刚知道,,, 作为一道裸题,还是必A的,然而一开始偷懒不写离散化跪了N多遍,后来在缪大的帮助下发现了这个问题,遂A之 ——又是这种破问题,实在不想说自己了 把n个数看成 ...

  6. Django分析之三级下拉菜单选择省/市/县

    今天遇到了一个一直想做却没有机会去做的功能,今天完成了便记录下来. 那这次是具体是个什么功能呢?其实还是很简单的效果,就是在用户注册的时候可以选择省/市/县,很简单的一个小功能. 那现在就开始了~首先 ...

  7. NAT概述

    引言 私有IP是无法在因特网上使用的,而如今普遍使用的宽带网络(ADSL)最多所能提供给用户的IP为16个,最少则为一个,万一企业内部有50台计算机要同时连接上因特网,该如何解决呢?这个问题的正确解决 ...

  8. Phone Font Size

    This table lists and describes the various font sizes that can be applied. Attribute = FontSize   Na ...

  9. vs 调试的时候 使用IP地址,局域网的设备可以访问并调试

    由于项目中主要是用于微信端的访问,所以使用PC来调试就很麻烦,那么就想到用IP地址来调试,那么就手机或者移动端就可以访问,并且进行调试了 那么,主要的设置如下几步: 1. 首先保证你的项目的属性的服务 ...

  10. 后台树状菜单,js实现递归无限分类

    //新闻类别管理 public function new_classify() { $arr = M('news_classify')->where("fid = 0")-& ...