[Python基礎]configparser函式庫寫入ini,鍵自動轉換小寫問題

閱讀時間約 4 分鐘

讓我們從程式開始看起,我們輸入的鍵都是KeY,卻在寫入ini時,都轉換成小寫了。

因為預設情況下,configparser 會將配置文件中的鍵(Key)轉換成小寫形式。也就是說,即使配置文件中鍵的寫法是大寫或混合大小寫,讀取時都會轉換成小寫。

如以下的程式範例

其中的鍵值為KeY1 KeY2 KeY3 KeY4,但寫入到ini時則都自動轉換成小寫的key了。

import configparser

# 創建 ConfigParser 物件
config = configparser.ConfigParser()

# 新增 Section 和資料
config['Section1'] = {'KeY1': 'Value1', 'KeY2': 'Value2'}

# 新增另一個 Section 和資料
config['Section2'] = {}
config['Section2']['KeY3'] = 'Value3'
config['Section2']['KeY4'] = 'Value4'

# 寫入配置到檔案
with open('D:/CRABpy/write/ini/example.ini', 'w') as configfile:
config.write(configfile)

print("INI 檔案已經成功寫入。")
ini寫入結果

ini寫入結果


保留配置文件中鍵的原始大小寫形式

config.optionxform = lambda option: option

使用 config.optionxform = lambda option: option 這行程式碼,您將 optionxform 屬性設置為一個 lambda 函式,這個 lambda 函式將不對鍵進行任何轉換,直接返回原始的鍵值。

換句話說,這樣設置之後,配置文件中的鍵在讀取時不會被轉換成小寫。

舉例來說,如果配置文件中有一個鍵是 KeY1,預設情況下會被轉換成 key1,但是使用了 config.optionxform = lambda option: option 這行程式碼之後,該鍵在讀取時會保持為 KeY1,不會轉換成小寫。

修改後的程式範例

新增這行程式碼 config.optionxform = lambda option: option

import configparser

# 創建 ConfigParser 物件
config = configparser.ConfigParser()

# 保留原先鍵大小寫
config.optionxform = lambda option: option

# 新增 Section 和資料
config['Section1'] = {'KeY1': 'Value1', 'KeY2': 'Value2'}

# 新增另一個 Section 和資料
config['Section2'] = {}
config['Section2']['KeY3'] = 'Value3'
config['Section2']['KeY4'] = 'Value4'

# 寫入配置到檔案
with open('D:/CRABpy/write/ini/example.ini', 'w') as configfile:
config.write(configfile)

print("INI 檔案已經成功寫入。")

鍵值維持大小寫

維持大小寫

維持大小寫




52會員
112內容數
Python程式設計師,不是在學習就是在學習的路上
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
創作者要怎麼好好休息 + 避免工作過量?《黑貓創作報#4》午安,最近累不累? 這篇不是虛假的關心。而是《黑貓創作報》發行以來可能最重要的一篇。 是的,我們這篇講怎麼補充能量,也就是怎麼休息。
Thumbnail
avatar
黑貓老師
2024-06-29
【Python 軍火庫🧨 - websockets】傳送/接收音檔並轉換成numpy(基礎篇) 關於Websockets的篇章, 有興趣的朋友歡迎參考: 【Python 軍火庫 - websockets】雙向溝通的渠道 【Python 軍火庫 - websockets】用json來溝通吧! 而這一篇章的主題主要是來分享如何透過websockets傳遞音檔並進行解碼, 我們都知道聲
Thumbnail
avatar
阿Han
2024-02-12
Python 程式札記 : 隨機數 randomPython 提供了一個功能豐富的標準函式庫,其中 random 專門用於生成隨機數。本文將介紹 random 的基本介紹,以及函式應用。
Thumbnail
avatar
梧笙
2024-01-15
[Python] Dictionary字典 - 基礎操作Dictionary(字典) : 是一個可以用來存放不同資料(不同型態)的容器(集合) 每一個元素都是以{鍵(Key):值(Value)}所構成,字典中每個項目都是用","隔開
Thumbnail
avatar
Youna
2023-11-28
Python 程式札記:基礎爬蟲 簡單獲取網頁數據在如今的資訊時代,如何有效的獲取並處理數據,成為了許多專業人士和企業的重要需求,爬蟲技術,作為獲取網絡數據的重要工具,其重要性不言而喻,而這篇文章將分享Python爬蟲的基礎,讓你能獲取想要的網頁數據。
Thumbnail
avatar
梧笙
2023-11-20
Python 詩編 #20: 數學的奇蹟Python 詩編 #20: 數學的奇蹟
Thumbnail
avatar
KH Huang
2023-09-09
[Python] 爬取台積電股價在這篇教學中,我們將使用 Python 的 requests 和 BeautifulSoup 套件,來爬取台積電股價的最新交易日收盤價。
avatar
Pochi
2023-06-25
python 基礎Python 基本語法 python 語法的後綴名是以.py 結尾 python 執行方式 使用交互介面執行 使用 python test.py 命令執行 使用./test.py 執行 python 標示符 以單下劃線開頭的屬性,表示是類的私有屬性(包括方法,變量)。如:_foo表示不能直接訪問的類
Thumbnail
avatar
wang alan
2023-04-18
Python 基礎詳細原碼: https://reurl.cc/ex8lZm hello world Variable (變數) 輸入 input() 四則運算 列表 list (陣列) 集合 字典(Dictionary) 給值 try 檢驗 取所有值 判斷式 If else 迴圈 Switch //字典方式 CSV
avatar
吳佳鑫
2022-11-10
在 Windows 建置以 Visual Studio 為基礎的 Python / Node.js 開發環境「VSCode 是世上最棒的 IDE 了吧」這時有人跳出來表示不服,定睛一看原來是那陳年的大哥 Visual Studio,他說道:「用 Windows 做開發的人一定要裝 Visual Studio 這樣專業的 IDE,不要裝其他次等的文字編輯器,才可以有效提升專業度。」
Thumbnail
avatar
Leon
2022-03-29
python+筆電相機 – 拍照儲存照片用python寫出應用筆電相機儲存照片。
Thumbnail
avatar
薰魚
2021-09-03