聊到关于整容的话题,媳妇儿说:“我觉得爹妈给我生的挺好的,除了我现在长胖了~”
我回:“唉,好好的胚子,让你糟蹋了~_~”
她踢我:“滚~~”
原文连接: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”包也可以对配置文件进行写入操作,暂时用不到,不再介绍;
以上就是我们用到的配置文件以及读取配置文件的工具类;
以上内容仅供练习,学习使用;