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

特定格式的ini配置文件模块,用于处理ini配置文件,注意:这个ini配置文件,只是ini文件名称的文本文件,不是后缀为.ini的文件,也就是ini文件,不是ini.ini文件

ini配置文件格式

每个标签称之为节点

# 注释1
; 注释2 [section1] # 节点
k1 = v1 # 第一种键值对
k2:v2 # 第二种键值对 [section2] # 第一种键值对
k1 = v1 # 第二种键值对

ConfigParser()模块函数

功能:创建ConfigParser对象,对象用来操作文件【无参】

使用方法:模块名称.ConfigParser()

格式如:config = configparser.ConfigParser()

read()模块函数

功能:打开文件【有参】

使用方法:对象变量.read("文件路径文件名称",encoding='字符编码')

格式如:config.read("ini", encoding='utf-8')

sections()模块函数

功能:获取对象里的所有节点名称,以列表形式返回,列表里的元素就是节点名称【有参】

使用方法:对象变量.sections()

格式如:ret = config.sections()

#!/usr/bin/env python
# -*- coding:utf8 -*-
import configparser #导入configparser模块
config = configparser.ConfigParser() #创建ConfigParser对象
config.read("ini", encoding='utf-8') #以utf-8的编码打开ini文件
ret = config.sections() #获取对象里的节点名称,以列表形式返回,列表里的元素就是节点名称
print(ret)
# 输出
# ['section1', 'section2']

items()模块函数

功能:获取指定节点下所有的键值对,返回的一个列表,列表里的元素是元祖,每个元祖的元素是键值对【有参】

使用方法:对象变量.items("要获取的节点名称")

格式如:ret = config.items("section2")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import configparser #导入configparser模块
config = configparser.ConfigParser() #创建ConfigParser对象
config.read("ini", encoding='utf-8') #以utf-8的编码打开ini文件
ret = config.items("section2") #获取指定节点下所有的键值对,返回的一个列表,列表里的元素是元祖,每个元祖的元素是键值对
print(ret)
# 输出
# [('k1', 'v1'), ('k2', 'v2')]

options()模块函数

功能:获取指定节点下所有的建,返回列表,列表里的元素是指定节点下所有的建【有参】

使用方法:对象变量.options("要获取的节点名称")

格式如:ret = config.options("section2")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import configparser #导入configparser模块
config = configparser.ConfigParser() #创建ConfigParser对象
config.read("ini", encoding='utf-8') #以utf-8的编码打开ini文件
ret = config.options("section2") #获取指定节点下所有的建,返回列表,列表里的元素是指定节点下所有的建
print(ret)
# 输出
# ['k1', 'k2']

get()模块函数

功能:获取指定节点下指定key的值,返回对应字符串【有参】

使用方法:对象变量.get("要获取的节点名称","要获取的key键名称")

格式如:ret = config.get("section2","k2")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import configparser #导入configparser模块
config = configparser.ConfigParser() #创建ConfigParser对象
config.read("ini", encoding='utf-8') #以utf-8的编码打开ini文件
ret = config.get("section2","k2") #获取指定节点下指定key的值,返回对应字符串
print(ret)
# 输出
# v2

has_section()模块函数

功能:检查指定的节点是否存在,存在返回True,不存在返回False【有参】

使用方法:对象变量.has_section("要检查的节点名称")

格式如:ret = config.has_section("section2")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import configparser #导入configparser模块
config = configparser.ConfigParser() #创建ConfigParser对象
config.read("ini", encoding='utf-8') #以utf-8的编码打开ini文件
ret = config.has_section("section2") #检查指定的节点是否存在,存在返回True,不存在返回False
print(ret)
# 输出
# True

add_section()模块函数

功能:在文件里追加节点【有参】

使用方法:对象变量.add_section("要追加的节点名称")

格式如:config.add_section("section5")

write()模块函数

功能:文件对象改变后将对象重新写入文件【有参】参数是打开要写入的文件

注意:对文件的,增,删,改,操作后都要用write()写入一下文件保存

使用方法:对象变量.write(open("文件路径或名称","文件打开方式",encoding='字符编码'))

格式如:config.write(open("ini","w",encoding='utf-8'))

#!/usr/bin/env python
# -*- coding:utf8 -*-
import configparser #导入configparser模块
config = configparser.ConfigParser() #创建ConfigParser对象
config.read("ini", encoding='utf-8') #以utf-8的编码打开ini文件
config.add_section("section5") #在文件里追加节点
config.write(open("ini","w",encoding='utf-8')) #文件对象改变后将对象重新写入文件

remove_section()模块函数

功能:删除指定的节点【有参】

使用方法:对象变量.remove_section("要删除的节点名称")

格式如:config.remove_section("section3")

#!/usr/bin/env python
# -*- coding:utf8 -*-
import configparser #导入configparser模块
config = configparser.ConfigParser() #创建ConfigParser对象
config.read("ini", encoding='utf-8') #以utf-8的编码打开ini文件
config.remove_section("section3") #删除指定的节点
config.write(open("ini","w",encoding='utf-8')) #文件对象改变后将对象重新写入文件

has_option()模块函数 

功能:检查指定节点下面的指定键是否存在,存在返回True,不存在返回False【有参】

使用方法:对象变量.has_option("要检查节点名称","键名称")

格式如:sf = config.has_option("section2","k2")

# -*- coding:utf8 -*-
import configparser #导入configparser模块
config = configparser.ConfigParser() #创建ConfigParser对象
config.read("ini", encoding='utf-8') #以utf-8的编码打开ini文件
sf = config.has_option("section2","k2") #检查指定节点下面的指定键是否存在,存在返回True,不存在返回False
print(sf)
# 输出
# True

remove_option()模块函数

功能:删除指定节点下的指定键值对

使用方法:对象变量.remove_option("指定节点名称","节点下要删除的键名称")

格式如:config.remove_option("section2","k1")

# -*- coding:utf8 -*-
import configparser #导入configparser模块
config = configparser.ConfigParser() #创建ConfigParser对象
config.read("ini", encoding='utf-8') #以utf-8的编码打开ini文件
config.remove_option("section2","k1") #删除指定节点下的键值对
config.write(open("ini","w",encoding='utf-8')) #文件对象改变后将对象重新写入文件

set()模块函数

功能:设置指定节点下的指定键值对

使用方法:对象变量.set("指定节点","键名称","值")

格式如:config.set("section2","k1","v1")

说明

根据键来判断如果键不存则创建定义的键值对

如果存在则更改成定义的值

#!/usr/bin/env python
# -*- coding:utf8 -*-
import configparser #导入configparser模块
config = configparser.ConfigParser() #创建ConfigParser对象
config.read("ini", encoding='utf-8') #以utf-8的编码打开ini文件
config.set("section2","k1","v1") #设置指定节点下的指定键值对
config.write(open("ini","w",encoding='utf-8')) #文件对象改变后将对象重新写入文件

创建一个配置文件

#!/usr/bin/env python
# -*- coding:utf8 -*-
import configparser #导入configparser模块
wjian = open("des","a",encoding='utf-8') #以a模式创建打开des文件
wjian.close() #关闭打开的文件
"""上面的open只用于创建des文件""" config = configparser.ConfigParser() #创建ConfigParser对象
config.read("des", encoding='utf-8') #以utf-8的编码打开des文件
config.add_section("section1") #追加指定节点
config.set("section1","k1","v1") #指定节点下设置键值对
config.set("section1","k2","v2") #指定节点下设置键值对
config.set("section1","k3","v3") #指定节点下设置键值对 config.add_section("section2") #追加指定节点
config.set("section2","a1","s1") #指定节点下设置键值对
config.set("section2","a2","s2") #指定节点下设置键值对
config.set("section2","a3","s3") #指定节点下设置键值对 config.add_section("section3") #追加指定节点
config.set("section3","f1","k1") #指定节点下设置键值对
config.set("section3","f2","k2") #指定节点下设置键值对
config.set("section3","f3","k3") #指定节点下设置键值对 config.write(open("des","w",encoding='utf-8')) #将改变后的对象写入des文件

重点总结:注意:对文件的,增,删,改,操作后都要用write()写入一下文件保存

第四十二节,configparser特定格式的ini配置文件模块的更多相关文章

  1. INI配置文件的格式

    为什么要用INI文件?如果我们程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序出厂后还能根据需要进行必要 ...

  2. 第二十四篇configparser(**)

    configparser模块 config:配置,parser:解析.字面意思理解configparser模块就是配置文件的解析模块. 来看一个好多软件的常见文档格式如下: [DEFAULT] # 标 ...

  3. 创建Unicode格式的INI文件

    前段时间由于开发一个软件,需要调用别人的接口,虽然我的软件是Unicode编码,对方的模块也是Unicode编码,但是对方提供的接口却是Ansi接口,在非中文系统下,由于涉及到中文路径,导致Ansi和 ...

  4. python 提供INI配置文件的操作 ConfigParser

    原文地址:http://www.cnblogs.com/pumaboyd/archive/2008/08/11/1265416.html 红色的为标注信息 +++++++++++++++++引用+++ ...

  5. Python3 configparser值为多行时配置文件书写格式

    一.说明 一般而言ini配置文件键值对都是一行就完事了,但有时候我们想配置的值就是由多行组成,这里说明此时配置格式该如何书写. 二.书写格式 如果值为多行,那么在第一行外的后续所有行前加入至少一个空格 ...

  6. centos vmware centos6.6 64位 kvm虚拟化安装配置 第四十二节课

    centos vmware centos6.6 64位 kvm虚拟化安装配置     第四十二节课 上半节课 下半节课 f

  7. 利用XSD配合XSLT產出特定格式Word檔案 -摘自网络

    利用類別產生XSD檔 產出XSD檔的目的在於提供Word樣板設計之資料框架 在此使用微軟提供之XML Schema Definition Tool (Xsd.exe)工具產生XSD檔 1. 定義類別 ...

  8. python读取uti-8格式ini配置文件出现UnicodeDecodeError: 'gbk' codec can't decode byte 0xba in position 367: illegal multibyte sequence错误解决方法

    出现这种错误只需要在read下添加encoding='utf-8' 如: from configparser import ConfigParser cf = ConfigParser() cf.re ...

  9. linux中date命令显示昨天的日期信息?以特定格式显示时间?

    需求描述: linux环境中,在使用date命令的时候,可以通过-d指定日期的字符串来显示日期 操作过程: 1.通过date显示昨天的日期 [root@redhat6 ~]# date -d 'yes ...

随机推荐

  1. mysql innodb存储引擎和myisam引擎

    InnoDb存储引擎面向在线事务处理,其特点是行锁设计.支持外键.并支持Oricle似得非锁定读(所谓非锁定读是如果数据库实例读取的行正在进行更新或删除操作当前读取不会等待当前锁的释放而是读取当前行的 ...

  2. pull类型消息中间件-消息发布者(一)

    消息集群架构 对于发送方来说的关键几要素 topic 消息的主题,由用户定义.类似于知乎的话题,Producer发送消息的时候需要指定发送到某一个topic下面,Consumer从某一个topic下面 ...

  3. virtualbox 提示 vboxclient the virtualbox kernel service is not running

    更新完Guest的内核之后,Guest下提示" vboxclient the virtualbox kernel service is not running".Guest下执行: ...

  4. win32api大全

    win32api大全 http://files.cnblogs.com/files/landv/Win32API%E5%A4%A7%E5%85%A8.zip

  5. 3-jQuery - AJAX get()

    介绍 GET 基本上用于从服务器获得(取回)数据.注释:GET 方法可能返回缓存数据. 格式 $.get(URL,callback); //必需的 URL 参数规定您希望请求的 URL. //可选的 ...

  6. iOS毛玻璃擦除效果

    思路:首先我的思路放两个imageView在Controller里把高清的图片放在下面,带有毛玻璃效果的图片放在上面. //在Controller的view上加一个手势代码如下(温馨提示,开启imae ...

  7. 整体认识flume:Flume介绍、分布式安装、常见问题及解决方案

    问题导读 1.什么是flume? 2.flume包含哪些组件? 3.Flume在读取utf-8格式的文件时会出现解析不了时间戳,该如何解决? Flume是一个分布式.可靠.和高可用的海量日志采集.聚合 ...

  8. Qt ImageProvider 的使用

    QQuickImageProvider 是一个可以支持在QML中使用 qpixmap 和 图片加载线程的类. 它支持在qml中使用Image加载的高级特性, 包括 使用 QPixmap 替代实际的im ...

  9. c# delegate的invoke和bejinInvoke的区别

    先看下面实实例代码 private delegate void testdg(); private void button1_Click(object sender, EventArgs e)     ...

  10. HDU 1081 To The Max(动态规划)

    题目链接 Problem Description Given a two-dimensional array of positive and negative integers, a sub-rect ...