一、背景

python 项目启动时,默认加载一个人或几个配置文件。配置文件可以不修改代码可以改变程序运行的环境、配置等。而常用的就是ConfigParser 是用来读取配置文件的包。

二、应用方法

  • 配置文件的格式如下: 中括号​​[ ]​​ 内包含的为​​section​​。​​section​​下面为类似于key-value 的配置内容
[mysql]
host = 127.0.0.1
port = 3306
user = root
password = 1qaz2wsx
db_name = games

[redis]
host = 127.0.0.1
port = 6379
user = root
password = 1qaz2wsx
db = 0
  • 获取所用的section节点
config.sections()                           ['mysql', 'redis']
  • 获取指定section 的options
mysql_db = config.options("mysql")         ['host', 'port', 'user', 'password']
  • 获取指点section下指点option的值
host = config.get("mysql", "host")
port = config.getint("mysql", "port")
  • 其它方法
get()                     获取值
getint() 将获取到值转换为int型
getboolean('redis', 'db') 将获取到值转换为bool型
getfloat("price", "" ) 将获取到值转换为浮点型
has_section("default") 检查是否存在section
config.add_section("default") 添加section
has_option("default", "db_host"): 检查是否存在option
set("default", "db_host", "0.0.0.0") 设置option值
  • 找不到字节名,报错

三、 示例

默认优先查找DEFAULT, 为基础、下面可以继承default, default只能大写,小写报错

[DEFAULT]
mysql_connect ="mysql+pymysql://%(user)s:%(password)s@%(host)s:%(port)s/%(db_name)s?charset=utf8"

[db1]
host = 192.168.0.110
port = 6379
user = root
password = 1qaz2wsx
db_name = games

[db2]
host = 192.168.0.111
port = 6379
user = root
password = 1qaz2wsx
db_name = games
import configparser
config = configparser.ConfigParser()
config.read("db_conf", encoding="utf-8")

print(config.get('db1', 'mysql_connect'))
print(config.get('db2', 'mysql_connect'))

"mysql+pymysql://root:1qaz2wsx@192.168.0.110:6379/games?charset=utf8"
"mysql+pymysql://root:1qaz2wsx@192.168.0.111:6379/games?charset=utf8"