Python3-configparser模块-配置文件解析器
Python3中的configparser模块主要用于处理类似于windows ini 文件结构的配置文件
1.configparser模块提供实现基本配置语言的ConfigParser类
2.配置文件由一个一个的"节点"组成,节点下的内容是一个一个的"键值对"
3.DEFAULT为默认节点,其下的所有"键值对"为所有节点共享
4."节点"名称是区分大小写的,但"节点"中的"键"并不区分大小写,并且"键"会以小写存储
5.解析出来的"值"的数据类型统统为字符串,但解析器提供了一些getint()和getfloat()等方法,供你使用
6.Python2中这个模块的名字是ConfigParser,到Python3中改为configparser
[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes [bitbucket.org]
User = hg [topsecret.server.com]
Port = 50022
ForwardX11 = no
ConfigParser对象的常用方法
cfg = configparser.ConfigParser() # 获取一个解析器对象
cfg.write("filename", "w", encoding= "utf-8")
将解析器对象写入到配置文件中
cfg.read("filename", encodin="utf-8")
将配置文件中的内容读取到解析器对象中
cfg.defaults()
返回默认节点下的"键值对"列表
cfg.sections()
返回所有的节点名称列表,不包含默认节点
cfg.options("section")
返回指定节点下可用的"键"
cfg.has_section("section")
返回节点是否存在,默认节点除外
cfg.has_options("section", "key")
返回节点存在并且包含指定的"key"
cfg.get("section", "key")
返回指定节点下的键对应的值,等价于 cfg["section"]["key"]
cfg.getint("section", "key")
返回指定节点下的键对应的值,并强制转换成整数,等价于 int(cfg["section"]["key"])
cfg.getfloat("section", "key")
返回指定节点下的键对应的值,并强制转换成浮点数,等价于 float(cfg["section"]["key"])
cfg.getboolean("section", "key")
返回指定节点下的键对应的值,并强制转换成布尔值 '1' 'yes' 'true' 'on' 返回True '0' 'no' 'false' 'off' 返回False,其他值则报错
cfg.add_section("section")
给解析器对象cfg添加一个节点,如果节点已经存在则引发异常DuplicateSectionError
cfg.remove_section("section")
返回节点是否存在,并将该节点删除
cfg.remove_option("section", "option")
返回节点下的键是否存在,并将其删除,如果节点不存在,引发异常NoSectionError
cfg.set("section", "key", "new_value")
修改指定节点下的键对应的值,如果节点不存在,引发异常NoSectionError
import configparser # 创建一个空白解析器对象
config = configparser.ConfigParser() # 设置各种节点
config["DEFAULT"] = {"英格兰": "ENGLAND", "中国": "China"}
config["China"] = {"鲁": "山东", "京": "北京"}
config["University"] = {"BJ": "清华", "SD": "山大"} # 将解析器对象写入配置文件
with open("config.ini", "w", encoding="utf-8") as cfg_file:
config.write(cfg_file)
1.初始化配置文件
import configparser # 创建一个空白解析器对象
config = configparser.ConfigParser()
config.read("config.ini", encoding="utf-8") # 增加节点
config.add_section("new_section")
config["new_section"]["k1"] = "v1"
config["new_section"]["k2"] = "v2" # 删除节点
config.remove_section("University")
# 删除节点下对应的值
config.remove_option("DEFAULT", "英格兰") # 修改节点下对应的值
config.set("DEFAULT", "中国", "最强的") # 查
print(config.get("DEFAULT", "中国")) # 将改动后的解析器对象重新写入配置文件
with open("config.ini", "w", encoding="utf-8") as cfg_file:
config.write(cfg_file)
2.配置文件的增、删、改、查
Python3-configparser模块-配置文件解析器的更多相关文章
- python ConfigParser模块 配置文件解析
ConfigParser模块主要是用来解析配置文件的模块,像mysql,或者win下面的ini文件等等 下面我们来解析mysql的配置文件my.cnf my.cnf配置文件内容 [mysqld] da ...
- python接口自动化测试 - configparser配置文件解析器详细使用
configparser简介 ConfigParser模块已在Python 3中重命名为configparser 该模块定义了ConfigParser类. ConfigParser类实现一种基本的配置 ...
- parseConf(配置文件解析器)
/****************************************************************************** * * parseConf(配置文件解析 ...
- golang开发:类库篇(四)配置文件解析器goconfig的使用
为什么要使用goconfig解析配置文件 目前各语言框架对配置文件书写基本都差不多,基本都是首先配置一些基础变量,基本变量里面有环境的配置,然后通过环境变量去获取该环境下的变量.例如,生产环境跟测试环 ...
- Python模块:配置文件解析器configparser
版权声明:本文为博主皮皮http://blog.csdn.net/pipisorry原创文章,未经博主同意不得转载. https://blog.csdn.net/pipisorry/article/d ...
- Python3 PyPAML 模块(配置文件的操作)
YAML 是专门用来写配置文件的语言,非常简洁和强大 它的基本语法规则如下: 1.大小写敏感 2.使用缩进表示层级关系 3.缩进时不允许使用Tab键,只允许使用空格. 4.缩进的空格数目不重要,只要相 ...
- python configparser配置文件解析器
一.Configparser 此模块提供实现基本配置语言的ConfigParser类,该语言提供类似于Microsoft Windows INI文件中的结构.我们经常会在一些软件安装目录下看到.ini ...
- Python标准组件ConfigParser配置文件解析器,保存配置时支持大写字母的方法
虽然自己已经改用xml作为配置文件首选格式了,但是有时候还是需要解析ini.cfg文件(为了兼容早期版本或者其他作者的软件). 基本上Python自带的ConfigParser足够应对了,但是美中不足 ...
- python模块----configpaser (key:value型 配置文件解析器)
configparser是用来读取配置文件的包,配置文件的格式类似:[section]+内容(键=值) 标准库网址:https://docs.python.org/3/library/configpa ...
随机推荐
- Docker 笔记一相关命令
Centos 7 : Service network restart 重启网络 Ip addr 查看ip地址 Uname -r 查看内核版本 Yum install docker 安装docker 命 ...
- Bitwarden_rs搭建
最近LastPass网络极其不稳定,正好闲下来找到了Bitwarden_rs这个替代品,感觉不错,分享记录下部署过程. 一.Docker方式部署 #获取镜像 docker pull bitwarden ...
- CSS3新增伪类有那些?
p:first-of-type 选择属于其父元素的首个元素 p:last-of-type 选择属于其父元素的最后元素 p:only-of-type 选择属于其父元素唯一的元素 p:only-child ...
- F5忘记密码修改教程
!!!首先查看系统版本,13版本和14版本修改密码方式不一致 首先介绍13版本修改密码 注:12版本也适用,11版本未测试,应该也可以,有问题欢迎留言) 1. 将终端连接到BIG-IP串行控制台端口. ...
- Spring ( 四 )Spring的AOP动态代理、切面编程
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 一.AOP切面编程 1.什么是AOP AOP是面向切面编程.全称:Aspect Oriented Pro ...
- Java实现 LeetCode 808 分汤 (暴力模拟)
808. 分汤 有 A 和 B 两种类型的汤.一开始每种类型的汤有 N 毫升.有四种分配操作: 提供 100ml 的汤A 和 0ml 的汤B. 提供 75ml 的汤A 和 25ml 的汤B. 提供 5 ...
- Java实现 LeetCode 794 有效的井字游戏 (暴力分析)
794. 有效的井字游戏 用字符串数组作为井字游戏的游戏板 board.当且仅当在井字游戏过程中,玩家有可能将字符放置成游戏板所显示的状态时,才返回 true. 该游戏板是一个 3 x 3 数组,由字 ...
- Java 第十一届 蓝桥杯 省模拟赛 最大的元素距离
在数列 a_1, a_2, -, a_n中,定义两个元素 a_i 和 a_j 的距离为 |i-j|+|a_i-a_j|,即元素下标的距离加上元素值的差的绝对值,其中 |x| 表示 x 的绝对值. 给定 ...
- PAT 人口普查
某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的,假设已知镇上没有超过 200 岁的老人,而今天是 2014 ...
- 弄懂Java的自增变量
首先我们来看一段代码: public static void main(String[] args){ int i = 1; i = i++; //第一行 int j = i++; //第二行 int ...