Python - 基礎知識專題 - 配置檔案與日誌管理(正在寫作)
Python中使用配置檔案與日誌管理
注:本文正在寫作中,敬請期待
由於博主水平有限,疏忽在所難免。
若發現問題請聯絡博主:李俊才
郵箱:291148484@163.com
希望對大家所有幫助,感謝朋友們的支援與鼓勵!
【導論】 這實際上是一個實戰相關的話題,因為很難想象很難在一個實際應用的系統中不存在配置與日誌。通過學習本文相關知識,你能學習到如何使用python建立和使用配置檔案,如何建立和管理日誌。本文將帶你用一些案例與實戰專案掌握相關內容。
1. 配置檔案
1.1 配置檔案地使用情景
在某些時候,如報表自動化小軟體的開發實踐中,我們很少做一個絢麗在這裡插入程式碼片
GUI介面並配置一個小型資料庫去記錄相關的執行引數,但從軟體的功能需求上,某些執行引數卻需要依據特定的時間、空間條件做靈活的修改,這時我們就需要使用配置檔案的方法來迅速地達到目的。
1.2 Python配置檔案分析器
1.2.1 什麼是INI
檔案
1. INI檔案簡介
字尾為“.ini”的配置檔案最初是僅windows的系統配置檔案所採用的一個儲存格式,由於這種格式表達意義清晰便且小巧簡便,目前在程式設計中廣泛應用。從本質上說INI
檔案是一個儲存字元流資料的文字檔案,它與普通的文字檔案相比有著特殊的資料表示結構。以下例項是某ini檔案開啟後的內容。
【Code1】INI檔案結構示例。
; ini檔案中可以用";"來表示註釋
[Section1_Name]
Key1Name = value1
Key2Name = value2
# ini檔案中也可以用"#"來表示註釋
[Section2_Name]
Key1Name = value1
Key2Name = value2
從【Code1】中可以看出,其在結構上的特點是一個檔案由多個部分組成,每個部分都稱作一個SECTION
。
2. INI檔案與字典
我們已經看到,INI檔案的section與python中的字典在概念上十分類似,也是由鍵值對構成的。任意一個SECTION
都包含帶有值的鍵,也就是說INI
檔案是鍵值對結構,這一點在表面上看與Python中的字典除了記錄的形式不同,其它的是沒有區別的。如果你真的這樣認為那就錯了。請注意:
· INI檔案的鍵值只能儲存字串資料!
【Code2】一個反例
[MySection]
FilePath = r'C:\ProgramData\ssh'
MyList = [1,2,3,4,5,6]
- 對於鍵FilePath,其值是我們在Windows系統中程式設計時常用的路徑寫法,我們期望獲得的是這樣一個表示路徑的結果:“C:\ProgramData\ssh”,但實際上我們將獲得的是完整的字串"r’C:\ProgramData\ssh’"。其原因就在於INI檔案儲存的不是複合資料型別而僅僅只是字串型別。
- 同理,在理解獲取FilePath鍵值後鍵MyList的值就好理解了,我們是不會得到一個Python列表的,能得到的只是一個可以用於定義該列表的字串“[1,2,3,4,5,6]”。
但是可能有讀者說了,我就是想按照上面的寫法表示我的路徑或者表示一個複合的Python資料型別,那有沒有方法呢?當然是有的。不過別急,我們在後邊的內容將會有詳細的介紹。
1.2.2 用Python操作INI檔案
在講解各種方法前,我們線給出一段INI檔案程式碼如【Code3】所示,它將是我們本節講解中建立或所用的INI檔案內容:
【Code3】待建立或讀取的INI檔案的內容
[DEFAULT]
Name = LiHua
Age = 16
Gender = Male
[Score]
Chinese = 99
English = 63
Math = 90
Physics= 87
[XinDongFang.chef.com]
RegistrationTime = 20201227
SuperUser = True
在Python中內建了配置檔案分析器模組,我們只要按照如下方法匯入configparser
模組即可使用。
【Code4】匯入configparser模組
import configparser
1 . INI檔案建立的方法
【Code5】函式式建立ini檔案例項
# **
# @author:Jack Lee
# **
import configparser # Import configparser module
def ini_wrighter(savePath, *dicts):
"""Map multiple dictionaries to multiple Section and create a single INI file in the directory savePath"""
config = configparser.ConfigParser() # Create an instance object of the class "configparser.ConfigParser"
for i in dicts:
if not isinstance(i,dict):
raise ValueError('Only dict in Python can be converted to a section in INI file!')
section_name = str(i["SectionName"])
del(i["SectionName"])
config[section_name] = i
with open(savePath, 'w') as configfile: # Save to file
config.write(configfile)
# Defines the first dictionary to be stored as an INI file
DEFAULT = {"Name":"LiHua", "Age":16, "Gender":"Male", "SectionName":"DEFAULT"}
# Defines the second dictionary to be stored as an INI file
Score = {"Chinese":99, "English":63, "Math":90, "Physics":87, "SectionName":"Score"}
# Define the third dictionary to be stored as INI file
OtherInfos = {"RegistrationTime":"20201227", "SuperUser":True, "SectionName":"XDFang.chef.com"}
savePath = r'C:\Users\JackLee\Desktop\myConfig.ini'
# Call our defined function and store the configuration file
ini_wrighter(savePath, DEFAULT, Score, OtherInfos)
執行上述程式碼,在我的電腦路徑’C:\Users\JackLee\Desktop’下可以發現生成了一個新檔案myConfig.ini:
開啟該檔案,顯示內容如圖2所示
你也許已經發現,雖然在Code5中定義儲存到INI檔案的字典的鍵值含有True這樣的布林值,但通過以上方法儲存到INI檔案時,被自動轉換成了字串,也就是說適應INI的字串儲存的這個過程是不需要我們認為程式設計實現的。
2. INI檔案讀取的方法
現在我們已經建立並儲存了配置檔案,下面讓我們回讀它。
1.3 實戰案例
2. 日誌管理(敬請期待)
2.1
相關文章
- Apache基礎配置與日誌管理Apache
- [基礎知識] Redis 配置檔案Redis
- Apache基礎配置與日誌管理解析Apache
- java專案日誌配置檔案Java
- Linux 檔案系統與日誌分析的相關知識Linux
- Python基礎知識之檔案的讀取操作Python
- 滲透測試基礎知識---mysql配置檔案詳解MySql
- 【YashanDB知識庫】windows配置ODBC跟蹤日誌, 使用日誌定位問題Windows
- 使用配置檔案方式記錄Python程式日誌Python
- Python基礎知識_第10節_檔案操作(IO技術)Python
- python基礎知識Python
- python 基礎知識Python
- MySQL InnoDB日誌檔案配置MySql
- 【MySQL日誌】MySQL日誌檔案初級管理MySql
- sybase iq日誌檔案管理
- [問題]多個檔案寫入日誌報錯
- ASP.NET Core 2.2 基礎知識(八)【日誌記錄】ASP.NET
- DB2日誌傳送基礎知識講解CIDB2
- Python基礎知識1Python
- Python基礎知識整理Python
- Python基礎知識分享Python
- nginx日誌配置檔案說明Nginx
- Python知識體系-Python2基礎知識Python
- Logback配置檔案這麼寫,還愁不會整理日誌?
- Python基礎知識詳解 從入門到精通(六)檔案操作Python
- (Python基礎教程之十二)Python讀寫CSV檔案Python
- Python入門教程之檔案讀寫操作知識Python
- 專題 | 專案管理知識、方法論、工具NO.6:企業內部的專案運作機制專案管理
- Python基礎知識之字典Python
- Python基礎知識之集合Python
- Python基礎知識架構Python架構
- Python基礎知識之二Python
- Python——基礎知識細節Python
- Python基礎知識點梳理Python
- Docker網路配置基礎知識Docker
- python日誌配置Python
- 基於Python的介面自動化實戰-基礎篇之讀寫配置檔案Python
- springboot專案配置logback日誌系統Spring Boot