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. PHP Cookei记录用户历史浏览信息的代码

    [基础]Cookie常用方法:$_COOKIE['RecordLuHuiDUDU'] 得到Cookiesetcookie('RecordLuHuiDUDU',",time()-3600*24 ...

  2. 阿里云 CentOS7.2 配置FTP+Node.js环境

    本人小白,写下这篇博客意在记录踩过的坑,大神请绕道~ 准备工作 安装自己喜欢的连接软件(一般是putty或者xshell),本人选择的是xshell,软件如图 : 通过软件中的ssh连接连接上已经购买 ...

  3. 根据ClassName获取元素节点

    功能描述: 通过ClassName获取元素节点,并解决兼容性问题 实现效果: 编码思路: 利用getElementsByTagName选出所有元素,再根据ClassName条件进行筛选 代码示例:

  4. 字符串:"2016-09-21T18:57:50+08:00[Asia/Chungking]" 转Date

    public static void main(String[] args) throws Exception { Date date1 = new Date(); SimpleDateFormat ...

  5. linux远程登录ssh免密码

    原文链接,感谢原作者. (一)问题: 假如我们现在有两台机器:ServerA和ServerB,现在想要让ServerA不用输入密码就能够进行访问. (二)方法和原理: 我们使用ssh-keygen在S ...

  6. On the first day here

    记录一下到这里的第一天 简单的自我介绍一下: 姓名: 郑超杰 昵称: 蝴蝶 English Nickname:   developerbfl     技能: OC  H5  Swift         ...

  7. HDU 5306 Gorgeous Sequence

    如果维护max,sum,那么可以得到一个暴力方法,如果t>=max,那可以return,否则往下更新,显然超时. 在上面基础上,再维护一下次大值,与最大值的个数.这样一来,次大值<t< ...

  8. zoj 1586 QS Network

    最小生成树,刚刚学了Prim算法. 对每条边变的权值进行预处理,c[i][j] = c[i][j] + p[i] + p[j] 其中c[i][j]为输入的权值,p[i],p[j]为连接这两个节点所需的 ...

  9. Number String

    Number String 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4055 dp 定义状态:dp[i][j]为当strlen=i,数字结尾为j的 ...

  10. Storm常见模式——批处理

    Storm对流数据进行实时处理时,一种常见场景是批量一起处理一定数量的tuple元组,而不是每接收一个tuple就立刻处理一个tuple,这样可能是性能的考虑,或者是具体业务的需要. 例如,批量查询或 ...