开发者社区> 余二五> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

11Python标准库系列之configparser模块

简介:
+关注继续查看

Python标准库系列之configparser模块


This module provides the ConfigParser class which implements a basic configuration language which provides a structure similar to what’s found in Microsoft Windows INI files. You can use this to write Python programs which can be customized by end users easily.


configparser用于处理特定格式的文件,其本质上是利用open来操作文件。

配置文件格式如下:

1
2
3
4
5
6
# 第一种注释方式
; 第二种注释方式
 
[node1]  # 节点
k1 = v1  # key = value
k2 : v2  # key : value

实例

创建一个file.conf文件,内容为空,然后进入pythonIDE:

1
2
3
4
5
6
[root@ansheng ~]# touch file.conf 
[root@ansheng ~]# python
Python 2.6.6 (r266:84292, Jul 23 201615:22:56
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help""copyright""credits" or "license" for more information.
>>>

为文件添加节点

1
2
3
4
5
6
7
8
>>> import configparser
>>> config = configparser.ConfigParser()
>>> config.read('file.conf', encoding='utf-8')
['file.conf']
# 添加节点"node1","node2",然后写入文件
>>> config.add_section("node1")
>>> config.add_section("node2")
>>> config.write(open('file.conf''w'))

检查节点是否存在

1
2
3
4
5
6
7
# 如果文件存在则返回"True",否则就返回"False"
>>> print(config.has_section('node1'))
True
>>> print(config.has_section('node2'))
True
>>> print(config.has_section('node3'))
False

删除节点

1
2
3
4
5
6
# 如果删除的节点存在则返回"True",否则返回"False"
>>> config.remove_section("node2")
True
>>> config.write(open('file.conf''w'))
>>> print(config.has_section('node2'))
False

设置节点内的键值对

1
2
3
4
5
6
# 添加完键值对之后别忘记了写入到文件中
>>> config.set('node1''Name'"ansheng")
>>> config.set('node1''Blog_URL'"https://blog.ansheng.me")
>>> config.set('node1''Hostname'"localhost.localhost")
>>> config.set('node1''IP'"127.0.0.1")
>>> config.write(open('file.conf''w'))

检查节点内的key是否存在

1
2
3
4
5
6
7
# 如果节点的Key存在就返回"True",否则返回"False"
>>> print(config.has_option('node1''Name'))
True
>>> print(config.has_option('node1''IP'))
True
>>> print(config.has_option('node1''VV'))
False

删除节点内的key

1
2
3
4
5
6
# 如果删除的节点存在就返回"True",否则就返回"False"
>>> config.remove_option('node1''IP')
True
>>> config.write(open('file.conf''w'))
>>> print(config.has_option('node1''IP'))
False

获取指定节点下指定key的值

1
2
3
4
5
6
7
8
9
# 默认返回的是字符串类型
>>> config.get('node1''Name')
'ansheng'
>>> config.get('node1''Blog_URL')
'https://blog.ansheng.me'
# 返回的字符串我们可以设置成一下三种数据类型,分别是"int","float","bool"
# v = config.getint('node1', 'k1')
# v = config.getfloat('node1', 'k1')
# v = config.getboolean('node1', 'k1')

获取指定节点下所有的key

1
2
3
# 返回节点下面所有的Key列表
>>> config.options('node1')
['name''blog_url''hostname']

获取指定节点下所有的键值对

# 返回一个列表,列表中每个元组就是一个键值对
>>> config.items('node1')
[('name', 'ansheng'), ('blog_url', 'https://blog.ansheng.me'), ('hostname', 'localhost.localhost')]

获取所有节点

1
2
3
# 获取当前文件中有多少个节点
>>> config.sections()
['node1']









本文转自 Edenwy  51CTO博客,原文链接:http://blog.51cto.com/edeny/1925757,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
10 Python之异常/模块/包
程序在运⾏时,如果遇到到⼀个错误,会停⽌程序的执⾏,并且提示⼀些错误信息,这就是异常。
7 0
python 模块与包
python 的包就是文件夹,包中还可以有子包,也就是子文件夹。 python 的模块就是一个个.py 文件,定义了各种功能接口。将模块以文件夹的形式进行分组管理。
14 0
Python 面向对象 9: 模块和包
Python 面向对象 9: 模块和包
43 0
Python - 模块与包
Python - 模块与包
22 0
Python模块与包
Python模块与包
59 0
15、python模块和包
模块和包 一 模块 1 什么是模块?    常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。    但其实import加载的模块分为四个通用类别:   1 使用python编写的代码(.
1222 0
+关注
20376
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载