Python 邊做邊學 8.2 工具類--配置文件工具(CfgUtil)

聊到關於整容的話題,媳婦兒說:“我覺得爹媽給我生的挺好的,除了我現在長胖了~”
我回:“唉,好好的胚子,讓你糟蹋了~_~”
她踢我:“滾~~”

原文連接: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”包也可以對配置文件進行寫入操作,暫時用不到,不再介紹;

以上就是我們用到的配置文件以及讀取配置文件的工具類;

以上內容僅供練習,學習使用;

發佈了55 篇原創文章 · 獲贊 8 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章