??在平時(shí)的工程中,我們?cè)跇?gòu)建工程時(shí),常常需要用到配置文件,用來(lái)配置項(xiàng)目的一些信息,比如數(shù)據(jù)庫(kù),請(qǐng)求網(wǎng)址,文件夾,線程、進(jìn)程數(shù)等信息,這樣就可以方便我們通過(guò)修改配置文件中的參數(shù)來(lái)很好地完成整個(gè)項(xiàng)目的功能修改或開(kāi)發(fā)。配置文件一般區(qū)別于Python代碼,會(huì)單獨(dú)存放在一個(gè)文件夾中,方便管理,常見(jiàn)的配置文件格式有.conf, .ini, .yaml等。
??本文使用Python中的configparser模塊來(lái)處理conf、ini配置文件。
??首先需要安裝configparser模塊,命令如下:
pip3 install configparser
??我們以下面的具體工程為例,來(lái)講述如何使用Python如何工程中的配置文件,項(xiàng)目結(jié)構(gòu)如下圖:

該項(xiàng)目中只有兩個(gè)文件,一個(gè)為mysql.conf,是MySQL的連接配置;另一個(gè)是Python代碼,用于讀取某張表的具體內(nèi)容。
??其中mysql.conf文件的內(nèi)容如下:
[mysql]
db_host=localhost
db_port=3306
db_user=root
db_password=
db_database=school
里面的[mysql]是select,類(lèi)似于HTML中的select(下拉菜單),下面的幾行為option,規(guī)定了數(shù)據(jù)庫(kù)的連接信息,包括host、port、user、password以及database。
??接著是mysql_test.py,完整的代碼內(nèi)容如下:
# -*- coding:utf-8 -*-
# time: 2019-08-28
# place: Daxing Beijing
from configparser import ConfigParser
import pymysql
cp = ConfigParser()
cp.read('mysql.conf')
host = cp.get("mysql", "db_host")
port = cp.getint("mysql", "db_port")
user = cp.get("mysql", "db_user")
password = cp.get("mysql", "db_password")
database = cp.get("mysql", "db_database")
# 打開(kāi)數(shù)據(jù)庫(kù)連接
db = pymysql.connect(host=host,
port=port,
user=user,
password=password,
db=database
)
# 使用cursor()方法創(chuàng)建一個(gè)游標(biāo)對(duì)象: cursor
cursor = db.cursor()
# 使用execute()方法執(zhí)行SQL語(yǔ)句并輸出結(jié)果
cursor.execute("select * from employee")
for row in cursor.fetchall():
print(row)
# 關(guān)閉游標(biāo)對(duì)象
cursor.close()
# 關(guān)閉數(shù)據(jù)庫(kù)連接
db.close()
在該文件中,我們使用configparser模塊解析出mysql.conf文件中MySQL數(shù)據(jù)庫(kù)的連接方式,并使用pymysql模塊獲取school數(shù)據(jù)庫(kù)中employee表的全部數(shù)據(jù)。輸出的結(jié)果如下:
('mac', 'mohan', 20, 'm', 2000.0, datetime.date(2019, 9, 1))
('alex', 'ben', 24, 'f', 2500.0, datetime.date(2012, 8, 9))
讓我們看一眼MySQL中這張表的內(nèi)容,如下圖:

??以上為示例項(xiàng)目的演示內(nèi)容。
??使用配置文件,在工程的構(gòu)建中,無(wú)疑是重要且方便的,因此,在實(shí)際的工程實(shí)踐中,也應(yīng)該多多使用配置文件,希望本文的內(nèi)容能對(duì)大家的工作有所幫助~
注意:不妨了解下筆者的微信公眾號(hào): Python爬蟲(chóng)與算法(微信號(hào)為:easy_web_scrape), 歡迎大家關(guān)注~