系列文章目录
Python自动化数据收集项目(1)— 创建项目DAS项目结构
Python自动化数据收集项目(2)— Utils之配置管理工具(configparser的使用)
文章目录
前言
上一篇文章已经创建好了基本的项目结构,今天开始我们要往里面填充内容啦。俗话说工欲善其事,必先利其器,我们在开始我们的核心业务逻辑前,也需要准备一些简单又强大的辅助工具。这部分其实适用于绝大部分的Python项目。辅助工具中,我个人认为最重要的就是Config(配置)管理工具了。
一、谈谈配置
1.为什么需要配置管理
事实上,需要刚开始写项目的同学都没有用配置管理的习惯。项目中使用到的路径、URL、API、映射规则等都使用hard code(硬编码)的方式写在代码中。但随着项目体量增大,大量的hard code将变得极难管理和维护,甚至会影响代码的可读性。使用配置管理可以允许我们将配置和业务代码分离并进行封装,集中管理在统一的配置文件中,之后的修改和维护工作将会变得极为简单和清晰。更何况我们还有ConfigParser这种Python自带的配置读写神器。
2.为什么要先写配置管理工具
从配置管理工具开始,是因为再小的业务逻辑都需要定义配置,我们可能会习惯于前期使用hard code,后期想起来配置管理时再集中迁移。这样未尝不可,但复杂了我们的工作量,何不养成习惯,把我们项目的第一个需要使用的配置,就定义在配置管理当中呢?
二、Config管理的实现
1.创建模块与类
配置管理模块可以写得足够通用,按我们之前的定义,放在Utils目录下再合适不过。我们先在utils目录下以config.py为名创建一个文件吧。
导入我们提到的Python配置管理包configparser以及日志打印包logging,养成分级输出日志的好习惯。
import logging
import configparser
class Config(object):
"""Config Manager Center
Read and manage config file
"""
2.创建配置文件
按照我们之前的规划,配置文件放在顶级目录下的config文件夹下。配置文件的格式为:中括号“[ ]”内包含的是section。section下面为key-value的配置内容(key和value都不需要使用引号括起来,若使用引号,引号将作为value的一部分被读取出来),key和value使用等于号“=”进行连接,等号前后各留一个空格。根据需要我们可以创建多个配置文件。例如针对于我们的DAS - 自动化数据收集项目我们可以分别创建API和数据库相关的配置文件api.conf和database.conf(建议使用.ini或.conf作为后缀名),先创建一个用于测试的api.conf 如下:
[url]
github = https://github.com/
google = https://www.google.com/
[user]
username = dasuser
password = dasabcd
[limit]
max = 1000
[header]
someproj = {
"Authorization": "Basic ABCDefghIJKlmn==",
"SystemID": "ABCD_REST",
}
[mapping]
someproj = {
"Project.Code": "projCode",
"Project.Date": "projDate"
}
3.ConfigParser模块的基本用法
在实现相关的函数前,我们先熟悉下ConfigParser类的基本用法。
# 导入ConfigParser模块
import configparser
# 实例化模块
conf = configparser.ConfigParser()
# 加载配置文件
conf.read(filepath)
# 获取所有的section节点
print(conf.sections()