python ConfigParser,
这篇文章主要介绍了大蟒读取配置文件-ConfigParser的二次封装方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
目录
Python读取配置文件-ConfigParser二次封装直接上上代码读取配置文件简单封装1.configparser模块2.configparser读取文件的基本方法3.引入骨模块,使用相对目录读取配置文件4.通过读取配置文件
Python读取配置文件-ConfigParser二次封装
直接上上代码
测试。主配置文件
[数据库]
connect=mysql
睡眠=否
测试=是
配置。巴拉圭
# -*-编码:utf-8 -*-
__作者__=郭茜茜
导入操作系统
导入ConfigParser
导入操作系统
当前目录=操作系统。路径。ABS路径(OS。路径。目录名(_ _文件_ _))
类操作错误(异常):
操作错误
类别字典(字典):
自定义字典
def __getattr__(self,key):
return self.get(key,None)
__setattr__=字典.__setitem__
__delattr__=字典.__delitem__
类别配置:
def __init__(self,file_name=test ,cfg=None):
@param file_name:不带扩展名的文件名。
@param cfg:配置文件路径。
env={}
对于键,值在os.environ.items():中
if key.startswith(TEST_):
env[key]=值
配置=配置解析器配置解析器(环境)
如果cfg:
配置读取(cfg)
else:
配置。阅读(OS。路径。join(当前目录,会议, %s.conf %文件名)
对于config.sections():中的节
setattr(self,section,Dictionary())
对于名称,配置项(部分):中的原始值
尝试:
#避免将"0"和"1"解析为
#布尔值。
#我们抛出一个异常,转到fail^w解析它
#为整数。
if config.get(section,name) in [0 , 1]:
提高值错误
值=配置。获取布尔值(部分,名称)
除了值错误:
尝试:
值=
config.getint(section, name)
except ValueError:
value = config.get(section, name)
setattr(getattr(self, section), name, value)
def get(self, section):
"""Get option.
@param section: section to fetch.
@return: option value.
"""
try:
return getattr(self, section)
except AttributeError as e:
raise OperationalError("Option %s is not found in "
"configuration, error: %s" %
(section, e))
if __name__ == "__main__":
conf = Config()
print conf.get("database").connect
print conf.get("database").sleep
print conf.get("database").test
执行结果
mysql
False
True
目录结构
demo
读取配置文件&&简单封装
之前有做过把爬虫数据写到数据库中的练习,这次想把数据库信息抽离到一个ini配置文件中,这样做的好处在于可以在配置文件中添加多个数据库,方便切换(另外配置文件也可以添加诸如邮箱、url等信息)
1.configparser模块
python使用自带的configparser模块用来读取配置文件,配置文件的形式类似windows中的ini文件
在使用前需要先安装该模块,使用pip安装即可
2.configparser读取文件的基本方法
(1)新建一个config.ini文件,如下
(2)新建一个readconfig.py文件,读取配置文件的信息
import configparser
上述代码运行结果如下,可以和config.ini进行对比
3.引入os模块,使用相对目录读取配置文件
工程目录如下:
readconfig.py:
import configparser
或者使用os.path.join()进行拼接
import configparser
4.通过读取配置文件
重新写一下之前的requests+正则表达式爬取猫眼电影的例子
把读取配置文件readconfig.py和操作数据库handleDB.py分别封装到一个类中
readconfig.py如下
import configparser
handleDB.py如下
# coding: utf-8
最后的运行文件,调用前面的方法
# coding: utf-8
以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。