博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第四十二节,configparser特定格式的ini配置文件模块
阅读量:5135 次
发布时间:2019-06-13

本文共 5697 字,大约阅读时间需要 18 分钟。

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,不存在返回Falseprint(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,不存在返回Falseprint(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()写入一下文件保存

转载于:https://www.cnblogs.com/adc8868/p/5829919.html

你可能感兴趣的文章
bzoj2038 [2009国家集训队]小Z的袜子(hose)
查看>>
Java反射机制及其Class类浅析
查看>>
Postman-----如何导入和导出
查看>>
移动设备显示尺寸大全 CSS3媒体查询
查看>>
图片等比例缩放及图片上下剧中
查看>>
background-clip,background-origin
查看>>
【Linux】ping命令详解
查看>>
java学习第三天
查看>>
django+uwsgi+nginx+sqlite3部署+screen
查看>>
浅谈项目需求变更管理
查看>>
经典算法系列一-快速排序
查看>>
ASP.NET MVC 拓展ViewResult实现word文档下载
查看>>
8、RDD持久化
查看>>
第二次团队冲刺--2
查看>>
Linux上架设boost的安装及配置过程
查看>>
[转载]加密算法库Crypto——nodejs中间件系列
查看>>
使用Xshell密钥认证机制远程登录Linux
查看>>
Android 画图之 Matrix(一)
查看>>
【模板】最小生成树
查看>>
设计模式之结构型模式
查看>>