第四十二节,configparser特定格式的ini配置文件模块
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配置文件模块的更多相关文章
- INI配置文件的格式
为什么要用INI文件?如果我们程序没有任何配置文件时,这样的程序对外是全封闭的,一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,这样很不好,所以要用配置文件,让程序出厂后还能根据需要进行必要 ...
- 第二十四篇configparser(**)
configparser模块 config:配置,parser:解析.字面意思理解configparser模块就是配置文件的解析模块. 来看一个好多软件的常见文档格式如下: [DEFAULT] # 标 ...
- 创建Unicode格式的INI文件
前段时间由于开发一个软件,需要调用别人的接口,虽然我的软件是Unicode编码,对方的模块也是Unicode编码,但是对方提供的接口却是Ansi接口,在非中文系统下,由于涉及到中文路径,导致Ansi和 ...
- python 提供INI配置文件的操作 ConfigParser
原文地址:http://www.cnblogs.com/pumaboyd/archive/2008/08/11/1265416.html 红色的为标注信息 +++++++++++++++++引用+++ ...
- Python3 configparser值为多行时配置文件书写格式
一.说明 一般而言ini配置文件键值对都是一行就完事了,但有时候我们想配置的值就是由多行组成,这里说明此时配置格式该如何书写. 二.书写格式 如果值为多行,那么在第一行外的后续所有行前加入至少一个空格 ...
- centos vmware centos6.6 64位 kvm虚拟化安装配置 第四十二节课
centos vmware centos6.6 64位 kvm虚拟化安装配置 第四十二节课 上半节课 下半节课 f
- 利用XSD配合XSLT產出特定格式Word檔案 -摘自网络
利用類別產生XSD檔 產出XSD檔的目的在於提供Word樣板設計之資料框架 在此使用微軟提供之XML Schema Definition Tool (Xsd.exe)工具產生XSD檔 1. 定義類別 ...
- 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 ...
- linux中date命令显示昨天的日期信息?以特定格式显示时间?
需求描述: linux环境中,在使用date命令的时候,可以通过-d指定日期的字符串来显示日期 操作过程: 1.通过date显示昨天的日期 [root@redhat6 ~]# date -d 'yes ...
随机推荐
- Java Swing 如何添加输入文字并且可以滚动的文本框?( JTextArea ,JScrollPane的使用)
准备: JTextArea 文本区,一个可以输入文字的文本框 常用方法: 1.setText(String t)设置文本区中显示的文本 2.getText() 获取文本区中显示的文本 JScrollP ...
- 用angular实现$.param()
首先介绍一下$.param() 功能: 序列化对象或数组,返回字符串 eg: var params = { width:1900, height:1200 }; var str = jQuery.pa ...
- Unity5权威讲解
Photon Cloud 299c7416-a08d-4a23-95a1-e4be108259aa Shooter 视频:https://pan.baidu.com/s/1kVFJ1x9 项目:htt ...
- ORACEL12c求和SUM(a+b)与SUM(a)+SUM(b)结果不一致问题
今天在oracle12c数据库遇到的问题,下面重现一下: 1.先创建一个临时表 temp.一个数据表bitest_sum; -- Create table create table PEC.BITES ...
- 动态的改变标签内的src属性
<body> <ul> <li class='on'>1</li> <li>2</li> <li>3</li& ...
- 解决Fileupload 在IE 10 中需要双击的问题
方法来自于:https://code.google.com/p/primefaces/issues/detail?id=5355 the oncomplete event is working for ...
- [妙味JS基础]第十二课:数组随机、数组去重
知识点总结 json var json={'name':'abc'} 属性加分号为安全的写法 json: 只能用for in 数组:for和for in 都可以使用 json没有length和下标 数 ...
- C#.NET的微信功能开发学习
对于新手的我来说,我不是申请一个微信公众号认证后进行开发,我是申请一个订阅号,然后通过自己申请的订阅号的公众平台测试号来学习. 一,申请后成功后,打开开发者工具-公众平台测试号 二,进去公众平台测试号 ...
- 谈一谈第九届移动互联网开发者大会( MDCon 2016 )
4G时代的开启以及移动终端设备的凸显必将为移动互联网的发展注入巨大的能量,2016年移动互联网产业必将带来前所未有的飞跃.第九届移动互联网开发者大会以"DT时代的移动开发技术创新" ...
- POJ 3259 Wormholes(SPFA+邻接表)
( ̄▽ ̄)" #include<iostream> #include<cstdio> #include<queue> #include<vector ...