首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python-ConfigParser

python-ConfigParser

作者头像
零式的天空
发布于 2022-03-02 12:14:27
发布于 2022-03-02 12:14:27
58900
代码可运行
举报
文章被收录于专栏:零域Blog零域Blog
运行总次数:0
代码可运行

几乎所有的应用程序真正运行起来的时候,都会读取一个或多个配置文件。 配置文件的作用是:用户不需要修改代码,就可以改变应用程序的行为,让它更好的为应用服务。 本篇主要介绍python中ConfigParser模块的API以及使用示例。

ConfigParser - 解析配置文件

此模块定义类 ConfigParser. 它实现了一个基本的配置文件解析语言,提供一个类似微软INI文件的结构。 使用它可以更容易的被用户自定义。 在python 3.0中ConfigParser 更名为 configparser 配置文件包括由[section] 开头的选项和name: value(name=value)等条目。其中value可以包含格式化字符串。 由’#’ ‘;’开头的行被忽略并作为注释。 在查找配置项时,如果读取的配置项不在指定的section中,将会在[DEFAULT]中查找

RawConfigParser Objects

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RawConfigParser.defaults()
返回一个包含实例范围默认的字典
RawConfigParser.sections()
返回一个可用section的列表,不包含DEFAULT
RawConfigParser.add_section(section)
增加section
RawConfigParser.has_section(section)
显示是否包含此section
RawConfigParser.options(section)
返回一个在此section中的可用选项的列表
RawConfigParser.has_option(section, option)
如果给定section存在,并包含option,返回True,否则返回False
RawConfigParser.read(filenames)
试图去读并解析一组文件名,返回被成功解析的文件名列表。
RawConfigParser.readfp(fp)
从文件或者类似文件对象中读取配置数据
RawConfigParser.get(section, option)
获取section的option的值
RawConfigParser.getint(section, option) 
            .getfloat(section, option)
            .getboolean(section, option) 可使用0/1 yes/no true/false on/off 将会转化为True, False,其他值
                            会抛出ValueError异常
                            RawConfigParser.items(section)
返回指定section的(name, value)的列表
RawConfigParser.set(section, option, value)
设置选项及值
RawConfigParser.write(fileobject)
将配置信息写入指定文件对象
RawConfigParser.remove_option(section, option)
删除给定section的option
RawConfigParser.remove_section(section)
删除section
RawConfigParser.optionxform(option)
转换option的形式。如更改选项名称为大小写敏感

ConfigParser Objects

ConfigParser 继承自RawConfigParser,并且扩展了它的接口,加入一些可选参数: ConfigParser.get(section, option, raw, vars) 获取给定section的选项值。raw为0,返回转换后的结果,为1返回原始字符形式, vars是一个字典,用来更改选项值 ConfigParser.items(section, option, raw, vars) 返回指定section的(name, value, raw, vars)的列表

代码示例

新建config文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import ConfigParser

config = ConfigParser.RawConfigParser()

config.add_section('Section1')
config.set('Section1', 'int', '15')
config.set('Section1', 'bool', 'true')
config.set('Section1', 'float', '3.1415')
config.set('Section1', 'baz', 'fun')
config.set('Section1', 'bar', 'Python')
config.set('Section1', 'foo', '%(bar)s is %(baz)s!')

# Writing our configuration file to 'example.cfg'
with open('example.cfg', 'wb') as configfile:
    config.write(configfile)

获取config文件内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import ConfigParser

config = ConfigParser.RawConfigParser()
config.read('example.cfg')

# getfloat() raises an exception if the value is not a float
# getint() and getboolean() also do this for their respective types
float = config.getfloat('Section1', 'float')
int = config.getint('Section1', 'int')
print float + int

# Notice that the next output does not interpolate '%(bar)s' or '%(baz)s'.
# This is because we are using a RawConfigParser().
if config.getboolean('Section1', 'bool'):
        print config.get('Section1', 'foo')
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import ConfigParser

config = ConfigParser.ConfigParser()
config.read('example.cfg')

# Set the third, optional argument of get to 1 if you wish to use raw mode.
print config.get('Section1', 'foo', 0) # -> "Python is fun!"
print config.get('Section1', 'foo', 1) # -> "%(bar)s is %(baz)s!"

# The optional fourth argument is a dict with members that will take
# precedence in interpolation.
print config.get('Section1', 'foo', 0, {'bar': 'Documentation',
                                                'baz': 'evil'})
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import ConfigParser

# New instance with 'bar' and 'baz' defaulting to 'Life' and 'hard' each
config = ConfigParser.SafeConfigParser({'bar': 'Life', 'baz': 'hard'})
config.read('example.cfg')

print config.get('Section1', 'foo') # -> "Python is fun!"
config.remove_option('Section1', 'bar')
config.remove_option('Section1', 'baz')
print config.get('Section1', 'foo') # -> "Life is hard!"

参考文献

python library reference 编写高质量代码:改善Python程序的91个建议

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python进阶之生成器
    可以被for循环的就说明他们是可迭代的,比如:字符串,列表,字典,元祖,们都可以for循环获取里面的数据
py3study
2020/01/19
3840
一个Python3和Python2的range差异
Python 3 中执行100000000 in range(100000001)会比Python 2快的非常多。
用户1416054
2018/08/02
3480
Python的列表学习(四)
列表的定义很简单,关键字是list,比如我们定义一个列表,它的所有的方法来自list类,我们可以来看下llist类的方法,见如下的代码:
无涯WuYa
2018/10/25
4270
利用Python3内置文档资源高效学习及官方中文文档
从前面的对Python基础知识方法介绍中,我们几乎是围绕Python内置方法进行探索实践,比如字符串、列表、字典等数据结构的内置方法,和大量内置的标准库,诸如functools、time、threading等等,而我们怎么快速学习掌握并学会使用这个Python的工具集呢? 我们可以利用Python的内置文档大量资源既可以掌握许多关于Python工具集的基本使用。
一墨编程学习
2019/06/15
5090
Python3中的内置函数
返回Unicode 码点是整数i的string。ord()与chr()相反。 eg:
py3study
2020/01/03
6690
关于Python的20个面试题
Python 是一个高级、解释型、交互式和面向对象的脚本语言. Python 语言设计具有高度可读性的, 使用一些常见的英语词组和其他语言常用的标点符号组成的语法结构, 相对于其他语言它具有更少的语法结构.
用户1416054
2018/08/02
5130
python中的for循环对象和循环退出
判断条件,1位true,0是flesh,成立时true,不成立flesh,not取反
py3study
2020/01/07
6.1K0
Python的元组学习(五)
本节来学习python的元组,在python语言中,元组的关键字是tuple同时元组是不可变的,列表与字典是可变的,元组的定义是一个(),下面通过代码我们具体来看元组对象的类所具备的功能和查看元组帮助详细的信息:
无涯WuYa
2018/10/25
6190
Python中的dir和help
dir和help是Python中两个强大的built-in函数,就像Linux的man一样,绝对是开发的好帮手。比如查看list的所以属性:
py3study
2020/01/07
8530
python入门到实战系列二
这节课继续学习python 元组 与 字典 两个数据类型还有循环、条件判断等相关知识,知识点有零散,但工作中需要把这些零散的知识点串起来解决问题。
高楼Zee
2022/05/17
9360
python入门到实战系列二
Python的内置函数(三十八)、 rstrip()
dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。
狼啸风云
2020/01/14
4910
python 列表特点及常用操作
Extend  接受参数并将该参数的每个元素都添加到原有的列表中,原地修改列表而不是新建列表
py3study
2020/01/07
9260
[第三周]Python内置函数功能汇总
3.5版本中的68个内置函数分类(https://blog.csdn.net/oaa608868/article/details/53506188)
OrekiShiko
2019/03/18
8320
[第三周]Python内置函数功能汇总
python基本数据类型(二)-python
python基本数据类型 序列类型的自带方法 1.列表的常用方法 2.元祖的常用方法 3.字符串的常用方法 1.列表常用的方法 L.append(obj) #在列表末尾添加新的对象 L.clear() #清空列表 L.copy() #复制列表,不是同一个对象,内容相同,有返回值。id不同(内存中的地址不同) L.count(obj) #统计某个元素在列表中出现的次数 L.extend(obj) #用obj扩展原来的列表 L.in
py3study
2020/01/14
4940
python基础-内置函数详解[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。 一、内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.htm
全栈程序员站长
2022/09/07
5330
python基础-内置函数详解[通俗易懂]
python3 内置函数详解
内置函数详解 abs(x) 返回数字的绝对值,参数可以是整数或浮点数,如果参数是复数,则返回其大小。 # 如果参数是复数,则返回其大小。 >>> abs(-25) 25 >>> abs(25) 25 all(iterable) all()会循环括号内的每一个元素,如果括号内的所有元素都是真的,或者如果iterable为空,则返回True,如果有一个为假的那么就返回False >>> all([]) True >>> all([1,2,3]) True >>> all([1,2,""]) Fa
程序员同行者
2018/06/22
1K0
python开发_mysqldb安装
在python的API上面,看到了MySQLdb,即python可以操作mysql数据库
Hongten
2018/09/13
5.8K0
python开发_mysqldb安装
Python装饰器、内置函数之金兰契友
装饰器:装饰器的实质就是一个闭包,而闭包又是嵌套函数的一种。所以也可以理解装饰器是一种特殊的函数。 因为程序一般都遵守开放封闭原则,软件在设计初期不可能把所有情况都想到,所以一般软件都支持功能上的扩展,而对源代码的修改是封闭的。 开放封闭原则主要体现在两个方面:
py3study
2020/01/17
4060
迭代器、生成器和可迭代对象
上次我们简单分享了迭代器和生成器,本次我们来更加深入的了解相关概念和使用方法,希望能对你有所帮助。
罗罗攀
2021/12/06
6670
python 内置函数
基本的数据操作基本都是一些数学运算(当然除了加减乘除)、逻辑操作、集合操作、基本IO操作,然后就是对于语言自身的反射操作,还有就是字符串操作。
py3study
2018/08/02
8450
相关推荐
python进阶之生成器
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档