您的位置:首页 > 编程语言 > Python开发

Python 边做边学 8.2 工具类--配置文件工具(CfgUtil)

2017-05-30 12:05 316 查看
聊到关于整容的话题,媳妇儿说:“我觉得爹妈给我生的挺好的,除了我现在长胖了~”

我回:“唉,好好的胚子,让你糟蹋了~_~”

她踢我:“滚~~”

原文连接:http://blog.csdn.net/tomorrow13210073213/article/category/6931287

读取配置文件(.ini)

项目里少不了配置文件,保存可配置的部分信息,比如:数据库链接、必要url等;

搜索“使用Python3读取配置文件”

搜索“使用Python3读取配置文件”,找到几个比较靠谱的博客:

https://my.oschina.net/flymaxty/blog/222748

有这一篇,足够了;

从文章里我们知道,可以通过“ConfigParser”读取和写入配置文件;“.ini”配置文件有“Section”的概念,相当于一个区块划分,把不同含义的配置项做个简单分类;不多说,直接看代码;

CfgUtil.py 代码

import configparser
import os

__path = os.getcwd()
__conf_file = __path + os.path.sep + "conf.ini"
__cgf_section = "config"
__db_section = "db"
__tcp_section = "tcp"
__proxy_section = "proxy"

conf = configparser.ConfigParser()
conf.read(__conf_file)

def get_cfg(name):
val = conf.get(__cgf_section, name)
return val

def get_db(name):
val = conf.get(__db_section, name)
return val

def get_tcp(name):
val = conf.get(__tcp_section, name)
return val

def get_proxy(name):
val = conf.get(__proxy_section, name)
return val


conf.ini 代码

# 普通配置
[config]
# 博客域名
csdn_blog_base = blog.csdn.net
# 主页域名
csdn_my_base = my.csdn.net
# 各项分数URI
csdn_my_get_sorce = /service/main/getSorce?username=
# 熟悉领域URI
csdn_my_get_knownarea = /service/main/get_knownarea_list?username=
# 其他各项URI
csdn_my_service = /service/main/uc
# 是否使用代理,0:不用代理,1:用代理
use_agent = 1
# 抓取线程数(开几个线程进行抓取)
thread_num = 8

# 数据库相关配置
[db]
# 数据库主机名(IP)
host = **.**.**.**
# 数据库用户
user = ****
# 数据库密码
passwd = ****
# 数据库名
db = ****
# 数据库端口
port = 3306
# 编码
charset = utf8

# TCP配置
[tcp]
# TCP client名(与具体代码相关)
client = csdn_cap
# TCP client 地址
csdn_cap_host = 127.0.0.1
# TCP client 端口
csdn_cap_port = 9999

# 代理相关
[proxy]
# 代理地址:端口
proxy_add = **.**.**.**:9999
# 代理登录名
proxy_user = ****
# 代理登陆密码
proxy_pwd = ****


简单描述

配置文件中每一项都做了简单描述,不再细说;

“CfgUtil.py”中引入了两个包“configparser”和“os”;其中“configparser”包是用来操作配置文件的,实现配置文件读写;“os”包提供程序运行路径“__path = os.getcwd()”以及系统路径分隔符“os.path.sep”;

如前文说过.ini配置文件通过“Section”给配置项归类,为了方便调用工具类里,我们通过不用方法调用不同Section里的配置项,不对外公开Section的名字;虽然“configparser”可以直接返回不同类型的配置值,但这里统一返回字符串,有需要再做转换;

调用方式:

from lufaxin.csdn.util import CfgUtil

.....

thread_num = CfgUtil.get_cfg("thread_num")
if thread_num is None:
thread_num = "1"
thread_num_int = int(thread_num)


其他

“configparser”包也可以对配置文件进行写入操作,暂时用不到,不再介绍;

以上就是我们用到的配置文件以及读取配置文件的工具类;

以上内容仅供练习,学习使用;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息