配置文件存int类型_配置文件ConfigParser的使用

前言:目前我们使用的绝大多数计算机程序都是通过菜单界面系统配置的,它几乎成了我们使用机器的默认方式。无论是办公软件,浏览器,甚至游戏、视频都是,几乎成了我们使用机器的默认方式。而在python中,也有这样的一个配置模块可以把代码可配置化。

什么是配置文件

这里的配置文件不同于我们平常所见的可视化的菜单界面,它是像代码形式的,如下示例:

968a2a12135378147319bd3850dfe6b1.png

​ :question:为什么要做配置文件?

​ :heavy_check_mark:让代码和配置都变成可模块化可配置化,提高代码的重用性,那什么时候把它变成可配置化呢?多处地方都用到一个参数时,经常会变化的参数等,都可以可配置化,我们只需要在配置文件中进行修改即可,不需要在代码中一处处的重复修改。

​ Python提供了一个ConfigParser模块,它实现了一种基本的配置文件解析器语言,该语言提供的结构类似于 .ini 文件中的结构。常见的配置文件格式有 .ini .conf .cfg ,配置文件由两个文件对象组成:section和option,一个配置文件里可以包含一个或多个节(section),每个节可以有多个option(键=值),如上图所标示。

读取配置文件

​ 它与file文件一样,需要先打开才能进行读取操作,常用方法如下:

read(filename)sections()options(section)items(section)get(section,option)getint(section,option)

​ 以上图中的 conf.ini 为例进行读取操作:

from configparser import ConfigParser# 创建一个操作配置文件的对象(文件解析对象)conf = ConfigParser()# 读取配置文件conf.read("conf.ini", encoding="utf8")# 获取所有sectionres2 = conf.sections()print("这是res2:{}".format(res2))# 获取对应section下的optionres3 = conf.options("logging")print("这是res3:{}".format(res3))# 获取对应section下的所有键值对res4 = conf.items("logging")print("这是res4:{}".format(res4))# get方法:读取出来的内容,都是字符串res5 = conf.get("logging", "level")print("这是res5:{}".format(res5), type(res5))# getint方法:读取出来的内容,都是int类型res6 = conf.getint("mysql", "port")print("这是res6:{}".format(res6), type(res6))

​ 运行结果:

C:softwarepythonpython.exe D:/learn/test.py这是res2:['logging', 'mysql']这是res3:['level', 'f_level', 's_level']这是res4:[('level', 'DEBUG'), ('f_level', 'DEBUG'), ('s_level', 'ERROR')]这是res5:DEBUG 这是res6:3306 Process finished with exit code 0

​ 除了可以读取str、int类型以外,还支持float、boolean,这里就不再举例。

​ :balloon: 小知识:

  • 键值对可用 = 也可用 : 进行分隔
  • section 名称是区分大小写的,而option不区分
  • 键值对中,首尾若有空白符会被去掉
  • 配置文件中也可以写入注释,注释以 # 或者 ; 为前缀

写入配置文件

​ 基本的写入方法如下:

add_section(section)set( section, option, value) 
from configparser import ConfigParser# 创建一个操作配置文件的对象(文件解析对象)conf = ConfigParser()conf.add_section('test')conf.set('test', 'name', 'Amy')conf.write(open('conf.ini', "a", encoding="utf-8"))

​ 运行后查看 conf.ini 文件里面的内容:

91afe2c8af8a15de8f43681cbb0f4c6f.png

ConfigParser的封装

​ 一次封装,一劳永逸,之后直接调用即可,封装内容按需。

from configparser import ConfigParserclass MyConf:    def __init__(self, filename, encoding="utf8"):        self.filename = filename        self.encoding = encoding        self.conf = ConfigParser()        self.conf.read(filename, encoding)    def get_str(self, section, option):        return self.conf.get(section, option)    def get_int(self, section, option):        return self.conf.getint(section, option)    def get_float(self, section, option):        return self.conf.getfloat(section, option)    def get_bool(self, section, option):    def write_data(self, section, option, value):        self.conf.set(section, option, value)        self.conf.write(open(self.filename, "a", encoding=self.encoding))        if __name__ == '__main__':    print(conf.get_str("conf.ini", "test","name"))# 测试

大家平时学习Python的时候肯定会遇到很多问题,小编我为大家准备了Python学习资料,将这些免费分享给大家!如果想要的可以找我领取

领取方式:

如果想获取这些学习资料,先关注我然后私信小编“01”即可免费领取!(私信方法:点击我头像进我主页右上面有个私信按钮)

如果这篇文章对你有帮助,请记得给我来个评论+转发

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值