Python_configparser模块
configparser : 用于处理ini结构相似的文件(配置文件),格式类似于:
[DEFAULT] # 相当于一个分组
# option # 注释,说明性文字 ,默认以# 或‘;’开头的行
option1 = 1
option2 = 2 [section2]
option3 = 3 # 每个分组下面包含0个或多个key = value 形式的选项
注:[DEFAULT] 是一个特殊的分组,它为其它分组提供它所包含的选项默认值,也就是说其它选项会继承 [DEFAULT] 下所有的选项值,但是各个分组可以覆盖这些默认值,如:在某个分组不存在,但 [DEFAULT] 存在选项时,获取分组的值就是 [DEFAULT] 的选项值。
configparser 提供了3个相关的类,3个类为依次继承关系:
class RawConfigParser # 提供配置文件读写相关功能,不支持格式字符串替换
class ConfigParser # 允许当前分组 或者选项进行字符串替换
class SafeConfigParser # 允许其他分组下的选项进行字符串替换
创建:
import configparser
config = configparser.ConfigParser() # 声明configparser文档
config['default'] = {'Vera': 'hello',
'Presely': 'yeah',
'element': 'ok'} # 子节点 config['head'] = {}
config['head']['thought'] = 'happy' # 添加子节点 config['mouse'] = {}
topsecret = config['mouse'] # 赋值
topsecret['eat'] = 'food'
topsecret['speak'] = 'joke' config['default']['finish'] = 'yes' with open('example,ini', 'w') as configfile: # 存文件
config.write(configfile)
ini
结果:
[default]
vera = hello
presely = yeah
element = ok
finish = yes [head]
thought = happy [mouse]
eat = food
speak = joke
result
configparser模块的增删改查:
| add_section(section_name) | 添加一个分组,若存在,则报错 |
| set_option(section_name,option_name,option_value) | 在一个分组下添加或修改一个选项 |
| remove_section(section_name) | 删除指定的分组,若存在则返回True,反之,返回False |
| remove_option(section_name,option_name) | 删除一个分组下的某个选项 |
| list_sections() | 以列表的形式返回所有分组 |
| list_option_keys(section_name) | 以列表的形式返回指定分组下所有的选项名(key) |
| list_option_items(section_name) | 返回指定的分组下包含的所有选项(key = value) |
| get_option(section_name,option_name,fallback) | 获取指定分组下指定的选项值(value),指定fallback 参数可用于获取选项值不存在的默认值 |
1. configparser.RawConfigParser类
与 section相关的方法:
|
add_section() |
|
|
remove_section() |
|
| sections() |
返回一个所有可用的分组的列表 |
| has_section(section) |
判断指定的分组是否存在,若存在则返回True,反之为False |
与option相关的方法:
| set (section,option,value) | 添加或修改某个已经存在的分组下的选项的值,若不存在,则报错 |
| get (section,option,fallback) | 以str的形式获取指定的某个选项值 |
| getint(section,option,fallback) | 以 int 的形式获取指定的某个选项值 |
| getfloat(section,option,fallback) | 以float 的形式获取指定的某个选项值 |
| getboolen(section,option,fallback ) |
对get()方法的字符串结果转换为布尔值并返回 # ‘1’,‘yes’,‘true’,‘on’返回True # ‘0’,‘no’,‘False’,‘off’返回 False |
| remove_option(section,option) | |
| defaults() | 返回一个包含默认值的字典,即[DEFAULT] 下的所有option |
| options(section) | 返回一个指定分组下所有可用选项值 |
| items(section) | 返回一个分组中包含的每个选项(key= value) |
| has_option(setion,option) |
配置文件读写相关方法:
| read_file(f,source=None) | 解析文件,若文件名被忽略,file有一个name属性,filename会取这个属性值 |
| read_string() | 从字符串中读取配置数据信息 |
| read_dict() | 从字典中读取配置数据信息 |
| write(fileobject,space_around_delimiter) | 将当前实例中的配置数据写入指定的文件对象中 |
| space_around_delimiter : 默认为True ,保留写入文件的配置数据选项和选项值之间的分隔符或空格符,False 为不保留 | |
| read(filenames,encoding=None) | 读取并解析一个文件列表,返回一个被成功解析的文件列表 |
2.configparser.ConfigParser类
是 RawConfigParser的子类,继承了RawConfigParser的方法,支持option值的格式化替换,允许以类似字典的方式来操作配置文件
| get(section,option[,raw[,vars]],fallback) | 获取指定的分组下某个选项值 |
| items(section[,raw[,vars]])) | 返回指定分组下每个选项(key= value) |
| raw : 默认为False,表示所有选项的值包含‘%’格式的字符串都会被替换为相应的值,若为True,则不对这些格式字符串做处理,直接返回 | |
| vars : 用来临时定义某个被格式字符串引用的选项的值(被格式字符串的查找过程:vars(如果被提供)->当前分组-> DEFAULT) | |
3. configparser.SafeConfigParser类
- set(section,option,value):添加或修改某个已经存在的分组下的选项值,如果分组不存在则报错
Python_configparser模块的更多相关文章
- npm 私有模块的管理使用
你可以使用 NPM 命令行工具来管理你在 NPM 仓库的私有模块代码,这使得在项目中使用公共模块变的更加方便. 开始前的工作 你需要一个 2.7.0 以上版本的 npm ,并且需要有一个可以登陆 np ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- ES6模块import细节
写在前面,目前浏览器对ES6的import支持还不是很好,需要用bable转译. ES6引入外部模块分两种情况: 1.导入外部的变量或函数等: import {firstName, lastName, ...
- Python标准模块--ContextManager
1 模块简介 在数年前,Python 2.5 加入了一个非常特殊的关键字,就是with.with语句允许开发者创建上下文管理器.什么是上下文管理器?上下文管理器就是允许你可以自动地开始和结束一些事情. ...
- Python标准模块--Unicode
1 模块简介 Python 3中最大的变化之一就是删除了Unicode类型.在Python 2中,有str类型和unicode类型,例如, Python 2.7.6 (default, Oct 26 ...
- Python标准模块--Iterators和Generators
1 模块简介 当你开始使用Python编程时,你或许已经使用了iterators(迭代器)和generators(生成器),你当时可能并没有意识到.在本篇博文中,我们将会学习迭代器和生成器是什么.当然 ...
- 自己实现一个javascript事件模块
nodejs中的事件模块 nodejs中有一个events模块,用来给别的函数对象提供绑定事件.触发事件的能力.这个别的函数的对象,我把它叫做事件宿主对象(非权威叫法),其原理是把宿主函数的原型链指向 ...
- 理解nodejs模块的scope
描述 原文档地址:https://docs.npmjs.com/misc/scope 所有npm模块都有name,有的模块的name还有scope.scope的命名规则和name差不多,同样不能有ur ...
- nodejs模块发布及命令行程序开发
前置技能 npm工具为nodejs提供了一个模块和管理程序模块依赖的机制,当我们希望把模块贡献出去给他人使用时,可以把我们的程序发布到npm提供的公共仓库中,为了方便模块的管理,npm规定要使用一个叫 ...
随机推荐
- Alpha 冲刺 (5/10)
目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:冲刺5 团队部分 后敬甲(组长) 过去两天完成了哪些任务 文字描述 最近事情有点多,只是跟进了下进度,写了写博客 接下来 ...
- 关于centos7和centos6中平滑升级nginx到新版本v1.12.1修复nginx最新漏洞CVE-2017-7529的解决方案
关于centos7和centos6中平滑升级nginx到新版本v1.12.1修复CVE-2017-7529漏洞的解决方案 漏洞描述 2017年7月11日,Nginx官方发布最新的安全公告,在Nginx ...
- T-SQL 日期函数
GETDATE() 它将返回当前日期和时间. 语法 上述函数的语法: GETDATE() 例 以下查询将返回当前日期以及MS SQL Server中的时间. Select getdate() as c ...
- MVC之基架
参考 ASP.NET MVC5 高级编程(第5版) 定义: 通过对话框生成视图及控制器的模版,这个过程叫做“基架”. 基架可以为应用程序的创建.读取.更新和删除(CRUB)功能生成所需的样板代码.基架 ...
- python 基础 three day
本节主要内容: 一. python基本数据类型有哪些? 1. int ==> 整数.主要用来进行数学计算. 2. str ==> 字符串,可以保存少量数据并进行相应的操作 3. boo ...
- 性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控【转】
概述 本文我们将介绍如何使用JMeter+InfluxDB+Grafana打造压测可视化实时监控. 引言 我们很多时候在使用JMeter做性能测试,我们很难及时察看压测过程中应用的性能状况,总是需要等 ...
- jQuery页面滚动底部加载数据
$(window).scroll(function () { var scrollTop = $(this).scrollTop(); var scrollHeight = ...
- Android:图解四种启动模式 及 实际应用场景解说
在一个项目中会包括着多个Activity,系统中使用任务栈来存储创建的Activity实例,任务栈是一种“后进先出”的栈结构.举个栗子,若我们多次启动同一个Activity.系统会创建多个实例依次放入 ...
- Ubuntu16.04安装Maven3.5.4
本篇教程在示例步骤中使用了以下版本的软件.操作时,请您以实际软件版本为准. 操作系统:Ubuntu 16.04.3 LTS Maven 版本:Apache Maven 3.5.4 JDK 版本:J ...
- 一个简单的 vue.js 实践教程
https://segmentfault.com/a/1190000006776243?utm_source=tuicool&utm_medium=referral 感觉需要改善的地方有: ( ...