Python之配置文件處理

??在平時(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)目結(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)容,如下圖:

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)注~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • feisky云計(jì)算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 4,356評(píng)論 0 5
  • 一、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 6,339評(píng)論 0 10
  • 模塊和包 一 模塊 1 什么是模塊? 常見(jiàn)的場(chǎng)景:一個(gè)模塊就是一個(gè)包含了python定義和聲明的文件,文件名就是...
    go以恒閱讀 2,348評(píng)論 0 4
  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個(gè) Awesome - XXX 系列...
    小邁克閱讀 3,127評(píng)論 1 3
  • 此心安處是吾鄉(xiāng) 黃佳琪 比起論東坡在政壇上的叱咤風(fēng)云,我更樂(lè)道于他處于江湖之...
    柒俠傳閱讀 355評(píng)論 1 1

友情鏈接更多精彩內(nèi)容