Python-configparse模块详解与代码示例_python configparse

文末有福利领取哦~

👉一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。img

👉二、Python必备开发工具

img
👉三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
img

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

Mysql的简单配置

如果要你写一个配置文件解析器,你有什么思路呢?例如:

  • 文件结构规定,规定参数和值、规定注释
  • 读取配置文件的配置项,配置文件的参数、值的分隔符规定,注释规定等
  • 删除配置文件的配置项
  • 修改配置文件的配置项
  • 添加配置文件的配置项
  • 检查配置文件的配置项

INI文件结构

配置文件是由小节组成的,每个小节都有一个 [section] 标头,加上多个由特定字符串 (默认为 = 或 😃 分隔的键/值条目。 默认情况下小节名对大小写敏感而键对大小写不敏感 。键和值开头和末尾的空格会被移除。 值可以被省略,在此情况下键/值分隔符也可以被省略。 值还可以跨越多行,只要其他行带有比值的第一行更深的缩进。 依据解析器的具体模式,空白行可能被视为多行值的组成部分也可能被忽略。
配置文件可以包含注释,要带有指定字符前缀 (默认为 # 或 😉。 注释可以单独出现于原本的空白行,并可使用缩进。

mysql的简单配置

[mysql]

设置mysql客户端默认字符集

default-character-set=utf8  
[mysqld]  
#设置3306端口  
port = 3306

设置mysql的安装目录

basedir=D:\mysql-5.7.20-win32\mysql-5.7.20-win32

设置mysql数据库的数据的存放目录

datadir=D:\mysql-5.7.20-win32\mysql-5.7.20-win32\data

允许最大连接数

max_connections=200

服务端使用的字符集默认为8比特编码的latin1字符集

character-set-server=utf8

创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

有两个小节,一个是mysql,一个是mysqld。这里使用#来代表后面的是注释,使用=来分隔参数和值。

举例

我们来对mysql的配置文件进行解析

import configparser

configfile = configparser.ConfigParser()
configfile.read(r"D:\mysql-5.7.20-win32\mysql-5.7.20-win32\my.ini")

print(configfile["mysql"]["default-character-set"])

结果

一般情况下,我们就是得到配置文件的配置项,然后对程序进行配置。当然,也可能在软件刚打开时,用户设置一下,写入配置文件。所以,增删改查是少不了的。接下来,详细看看。

[‘BOOLEAN_STATES’, ‘NONSPACECRE’, ‘OPTCRE’, ‘OPTCRE_NV’, ‘SECTCRE’, ‘add_section’, ‘clear’, ‘converters’, ‘default_section’, ‘defaults’, ‘get’, ‘getboolean’, ‘getfloat’, ‘getint’, ‘ha
s_option
’, ‘has_section’, ‘items’, ‘keys’, ‘options’, ‘optionxform’, ‘pop’, ‘popitem’, ‘read’, ‘read_dict’, ‘read_file’, ‘read_string’, ‘readfp’, ‘remove_option’, ‘remove_section’, ‘s
ections’, ‘set’, ‘setdefault’, ‘update’, ‘values’, ‘write’]

读取配置

节点

获取所有节点
print(configfile.sections())

结果

[‘mysql’, ‘mysqld’]

获取指定节点下的所有键
print(configfile.options("mysqld"))

结果

[‘port’, ‘basedir’, ‘datadir’, ‘max_connections’, ‘character-set-server’, ‘default-storage-engine’]

键值对

获取指定节点下的所有键值对
print(configfile.items("mysqld"))

结果

[(‘port’, ‘3306’), (‘basedir’, ‘D:\mysql-5.7.20-win32\mysql-5.7.20-win32’), (‘datadir’, ‘D:\mysql-5.7.20-win32\mysql-5.7.20-win32\data’), (‘max_connections’, ‘200’), (‘character-
set-server’, ‘utf8’), (‘default-storage-engine’, ‘INNODB’)]

获取指定节点下键对应的值
mysqld = configfile["mysqld"]
print(mysqld.get("datadir"))

结果

D:\mysql-5.7.20-win32\mysql-5.7.20-win32\data

布尔值获取与设置

从前面可以看到,所有的键和值都认为是字符串。那么如何获取布尔值呢?

官方给了getboolean函数

在配置文件中,添加

#布尔值
bool = False

print(type(mysqld.getboolean("bool")), mysqld.getboolean("bool"))

结果

<class ‘bool’> False

配置解析器会将下列值视为 True: '1', 'yes', 'true', 'on' 而将下列值视为 False: '0', 'no', 'false', 'off'

有的时候,可能配置简单,懒得写配置功能,直接让用户来修改配置文件,通过注释来提示用户。但是off、false等对非计算机专业用户来说有些难。我们可以修改一下布尔值的判定

配置文件中添加:

是否开启命运之门? 打开或关闭

Door of Destiny = 打开

代码添加:

# 设置布尔值
configfile.BOOLEAN_STATES["打开"] = True
configfile.BOOLEAN_STATES["关闭"] = False
print(mysqld.get("Door of Destiny"))
print(type(mysqld.getboolean("Door of Destiny")), mysqld.getboolean("Door of Destiny"))

结果:

打开
<class ‘bool’> True

对于float、int,可以使用getfloat和getint,也可以自己使用int、float进行转换

检查配置

在查看、添加、删除、修改之前,我们都应该检查一下是否存在。

节点

检查节点是否存在
print(configfile.has_section("mysql"))
print(configfile.has_section("yoursql"))

结果

True
False

键值对

检查指定节点的键是否存在
print(configfile.has_option("mysqld", "default-character-set"))
print(configfile.has_option("mysqld", "port"))

结果

False
True

添加配置

节点

添加节点
configfile.add_section("delete")
configfile.add_section("info")

键值对

向指定节点中添加键值对
configfile.set("info", "author", "lady_killer9")
configfile.set("info", "time", "now")

删除配置

节点

删除节点
configfile.remove_section("delete")

键值对

删除指定节点的键值对
configfile.remove_option("info", "time")

修改配置

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值