Python自动化数据收集项目(2)— Utils之配置管理工具(configparser的使用)

系列文章目录

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()
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值