文章目录
普通加载
test.cfg文件中内容如下
[mysqld]
user = mysql
port = 3306
- 加载配置文件中的port变量
import configparser
def load_from_filepath():
'''
这个方法最简单异懂
第1, 判断mysqld这个域在不在
第2, 判断mysqld这个域下有没有port这个变量
第3, 加载
但配置多起来的时候代码很难看,灵活性差
'''
filepath = 'configparser/test.cfg'
mysql_conf = configparser.ConfigParser()
mysql_conf.read(filepath)
if mysql_conf.has_section('mysqld'):
if mysql_conf.has_option('mysqld', 'port'):
port = mysql_conf.getint('mysqld', 'port')
return port
用try
import configparser
import sys
def try_load_from_filepath():
'''
用try包装,稍微好看了点,但和上一个方法半斤八两
'''
filepath = 'configparser/test.cfg'
mysql_conf = configparser.ConfigParser()
mysql_conf.read(filepath)
try:
port = mysql_conf.getint('mysqld', 'port')
except Exception as err:
print(str(err))
return port
用items–推荐
def load_with_dict():
'''
利用items()遍历,不管有多少变量都一起读过来
'''
filepath = 'configparser/test.cfg'
mysql_conf = configparser.ConfigParser()
mysql_conf.read(filepath)
ret = {}
for section, option_dict in mysql_conf.items():
ret[section] = {}
for option, val in option_dict.items():
ret[section][option] = val
return ret
这个方法优雅,但缺少了默认值的读取