Python配置文件总结与避坑指南

关于今天的内容

最近拿python在写项目部署的相关集成代码,本来两天的工作量,硬是在来回的需求变更中,拖到了一周的时间。今天算是暂时告一段落了。这次由于涉及多个系统的调用和配置参数,代码开发中出现了较多之前未发现或者说没暴露出来的问题,今天针对这些知识点进行相关的复习与总结

Python 配置文件管理

configparser是python推荐使用的配置文件管理模块,但坦白说它真的不怎么好用,使用yaml、json等格式的存储,在多层级数据存储上,效率要比它高很多。但存在即合理,不是所有人都会使用yaml的格式,至于json的格式,很容易导致确实括号等问题,最终json.loads时报错…
关于命名:
python2中模块叫:ConfigParser
python3中更名为:configparser
eg:其实有时候懒得写2和3的差别,但很多公司或者团队至今还在使用python2,然后一导入报错,就说是我的内容写的有问题,心累…
先来看看它的基本使用:
我们首先的定义一个配置文件:

[DEFAULT]
path = /home/python
version = 3.6.8
	Beta1
author = Qing_Feng_Python
number = 13

[Mysql]
creator = pymysql
host = 127.0.0.1
port = 3306
user = root
password = 123
database = mysqlDB
status = off
uri = %(user)s@%(host)s:%(port)s/%(database)s
  1. 配置文件分为

    • section 使用方括号包裹的名称,区分大小写
    • option 你可以理解为变量名称,option及其对应的值,不区分大小写
  2. 配置文件中的键值对可以使用=或者:进行连接,但推荐使用=,为什么?因为=不会出现中文符号的异常问题!比如下面的报错:

    configparser.ParsingError: Source contains parsing errors: ‘config.ini’

  3. 键值对的分隔符及行首、行尾的空格会被strip()掉

  4. 关于DEFAULT,这个section几乎在每个配置文件中都会出现

    • DEFAULT不会再conf.section()中显示
    • 它类似于python的继承,默认子section都会具备DEFAULT的内容。当子section中出现与DEFAULT同名的键,会覆盖DEFAULT的原始内容
  5. key:value中value可以存在多行,比如例子中的version,但换行后的内容,切记不可定格写,不然会被认为是key,而导致报错。

  6. 配置文件中的value不管是int还是str亦或者表面看起来的列表[1,2,3]或者字典样式{“name”:“Urnaus”}都会被认为是str字符串类型。所以配置文件中,切记不要使用列表的样式,推荐使用json格式,这样可以通过json模块进行字典的转换

  7. 配置文件支持%(key)s的变量解析能力,些许的类似python…

说完了配置文件,再来说说怎么读取配置文件吧:

# -*- coding: utf-8 -*-
# @Author   : 王翔
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值