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

  1. npm 私有模块的管理使用

    你可以使用 NPM 命令行工具来管理你在 NPM 仓库的私有模块代码,这使得在项目中使用公共模块变的更加方便. 开始前的工作 你需要一个 2.7.0 以上版本的 npm ,并且需要有一个可以登陆 np ...

  2. node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理

    一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...

  3. ES6模块import细节

    写在前面,目前浏览器对ES6的import支持还不是很好,需要用bable转译. ES6引入外部模块分两种情况: 1.导入外部的变量或函数等: import {firstName, lastName, ...

  4. Python标准模块--ContextManager

    1 模块简介 在数年前,Python 2.5 加入了一个非常特殊的关键字,就是with.with语句允许开发者创建上下文管理器.什么是上下文管理器?上下文管理器就是允许你可以自动地开始和结束一些事情. ...

  5. Python标准模块--Unicode

    1 模块简介 Python 3中最大的变化之一就是删除了Unicode类型.在Python 2中,有str类型和unicode类型,例如, Python 2.7.6 (default, Oct 26 ...

  6. Python标准模块--Iterators和Generators

    1 模块简介 当你开始使用Python编程时,你或许已经使用了iterators(迭代器)和generators(生成器),你当时可能并没有意识到.在本篇博文中,我们将会学习迭代器和生成器是什么.当然 ...

  7. 自己实现一个javascript事件模块

    nodejs中的事件模块 nodejs中有一个events模块,用来给别的函数对象提供绑定事件.触发事件的能力.这个别的函数的对象,我把它叫做事件宿主对象(非权威叫法),其原理是把宿主函数的原型链指向 ...

  8. 理解nodejs模块的scope

    描述 原文档地址:https://docs.npmjs.com/misc/scope 所有npm模块都有name,有的模块的name还有scope.scope的命名规则和name差不多,同样不能有ur ...

  9. nodejs模块发布及命令行程序开发

    前置技能 npm工具为nodejs提供了一个模块和管理程序模块依赖的机制,当我们希望把模块贡献出去给他人使用时,可以把我们的程序发布到npm提供的公共仓库中,为了方便模块的管理,npm规定要使用一个叫 ...

随机推荐

  1. 003_ab http压测工具

    一. ab -r -k -c 20000 -n 25000000 https://www.uuwatch.me/abtest #ab压测工具单机最大并发为20000,可以在多台机器上执行以增大并发 y ...

  2. luasocket 安装记录 (FS1.4)

    说明:FS 1.4 使用的lua 5.2 ,需要使用luasocket 3.0 以上. 本文以FS 1.4 && luasocket 3.0 为基础,记录安装使用过程. 一.下载 &a ...

  3. 技术的热门度曲线:GHC

      全球最大的 IT 咨询公司高德纳(Gartner),有一个"技术热门度曲线"模型(Gartner Hype Cycle). 该模型认为,一门技术的发展要经历五个阶段. (1)启 ...

  4. swift 学习- 25 -- 协议 02

    // 通过扩展添加协议一致性 // 即便无法修改源代码, 依然可以通过扩展 令已有类型遵循并符合协议, 扩展可以为已有类型添加属性, 方法, 下标 以及构造器, 因此可以符合协议中的相应要求 // 注 ...

  5. Windows下Oracle 11g安装以及创建数据库

    安装数据库 事实上Oracle安装 1.安装准备 Oracle的安装包下载以后是两个压缩包,同时选中两个压缩包右击进行解压 2.解压完成如下图所示 3.双击 setup.exe 文件进行安装,会弹出以 ...

  6. Confluence 6 识别慢性能的宏

    Page Profiling 给你了有关页面在载入的时候操作缓慢的邪教,你可以将下面的内容添加到调试(debug)级别: Version 3.1 及其后续版本 设置包名字为 com.atlassian ...

  7. Confluence 6 重构查找索引

    查找索引是自动维护的,但是你有时候可能会因为你在查找的时候或查看者邮件主题出现了异常,或者你的 Confluence 实例升级到了新的版本,你可能需要手动重构索引. 进行搜索索引重构: 在屏幕的右上角 ...

  8. Confluence 6 SQL Server 数据库驱动修改

    从 Confluence 6.4 开始,我们使用官方的 Microsoft SQL Server JDBC 驱动来替换掉开源的 jTDS 驱动.从这个版本开始所有的安装都会默认使用官方的 Micros ...

  9. 使用 Jira 和 Confluence 6 在一起

    这个过程是有趣的过程.请参考 Use Jira applications and Confluence together 文档来找到有关整合的相关内容,能够在后续的开发中更多的节省时间,以及你需要安装 ...

  10. 【shell】两种字符串提取场景的实现

    shell虽然比batch顺眼点儿,但还是老话,入门容易,精通难. 1.场景一是这样的,现有字符串的内容 name: tiger; age:18; location:china; 需求:提取每个属性的 ...