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  2016 15 : 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,如需转载请自行联系原作者
目录
相关文章
|
2天前
|
SQL 前端开发 数据可视化
Rodeo支持多种Python库
Rodeo支持多种Python库
10 5
|
1天前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
在网络数据的海洋中,网络爬虫遵循HTTP协议,穿梭于互联网各处,收集宝贵信息。本文将从零开始,使用Python的requests库,深入解析HTTP协议,助你构建自己的网络爬虫帝国。首先介绍HTTP协议基础,包括请求与响应结构;然后详细介绍requests库的安装与使用,演示如何发送GET和POST请求并处理响应;最后概述爬虫构建流程及挑战,帮助你逐步掌握核心技术,畅游数据海洋。
15 3
|
6天前
|
数据采集 网络协议 API
HTTP协议大揭秘!Python requests库实战,让网络请求变得简单高效
【9月更文挑战第13天】在数字化时代,互联网成为信息传输的核心平台,HTTP协议作为基石,定义了客户端与服务器间的数据传输规则。直接处理HTTP请求复杂繁琐,但Python的`requests`库提供了一个简洁强大的接口,简化了这一过程。HTTP协议采用请求与响应模式,无状态且结构化设计,使其能灵活处理各种数据交换。
33 8
|
10天前
|
JSON API 开发者
Python网络编程新纪元:urllib与requests库,让你的HTTP请求无所不能
【9月更文挑战第9天】随着互联网的发展,网络编程成为现代软件开发的关键部分。Python凭借简洁、易读及强大的特性,在该领域展现出独特魅力。本文介绍了Python标准库中的`urllib`和第三方库`requests`在处理HTTP请求方面的优势。`urllib`虽API底层但功能全面,适用于深入控制HTTP请求;而`requests`则以简洁的API和人性化设计著称,使HTTP请求变得简单高效。两者互补共存,共同推动Python网络编程进入全新纪元,无论初学者还是资深开发者都能从中受益。
29 7
|
9天前
|
Java Serverless Python
探索Python中的并发编程与`concurrent.futures`模块
探索Python中的并发编程与`concurrent.futures`模块
14 4
|
17天前
|
机器学习/深度学习 PyTorch 算法框架/工具
python这些库和框架哪个更好
【9月更文挑战第2天】python这些库和框架哪个更好
32 6
|
17天前
|
机器学习/深度学习 数据采集 算法框架/工具
python有哪些常用的库和框架
【9月更文挑战第2天】python有哪些常用的库和框架
21 6
WK
|
17天前
|
数据采集 XML 安全
常用的Python网络爬虫库有哪些?
Python网络爬虫库种类丰富,各具特色。`requests` 和 `urllib` 简化了 HTTP 请求,`urllib3` 提供了线程安全的连接池,`httplib2` 则具备全面的客户端接口。异步库 `aiohttp` 可大幅提升数据抓取效率。
WK
35 1
WK
|
20天前
|
机器学习/深度学习 数据采集 算法框架/工具
Python那些公认好用的库
Python拥有丰富的库,适用于数据科学、机器学习、网络爬虫及Web开发等领域。例如,NumPy和Pandas用于数据处理,Matplotlib和Dash用于数据可视化,Scikit-learn、TensorFlow和PyTorch则助力机器学习。此外,Pillow和OpenCV专长于图像处理,Pydub处理音频,Scrapy和Beautiful Soup则擅长网络爬虫工作
WK
21 4
|
21天前
|
机器学习/深度学习 JSON 数据挖掘
什么是 Python 库?
【8月更文挑战第29天】
46 4