您的位置 首页 kreess

Python中ini配置文件詳解

INI介紹INI是英文“初始化”(initialization)的縮寫,被用來對操作系統或特定程序初始化或進行參數設置。由節(section)、鍵(key)、值(value

INI介紹

INI是英文“初始化”(initialization)的縮寫,被用來對操作系統或特定程序初始化或進行參數設置。由節(section)、

鍵(key)、值(value)構成。在windows系統中有很多INI文件,例如“System32.ini”和“Win.ini”,相信大傢並不陌生。Python

中操作配置文件的模塊為configparser,這個模塊可以用來解析與Windows上INI文件結構類似的文件。

關於configparser

在python2中該模塊名為Configparser,到python3才改為configparser,該模塊是用來解析 ini配置文件的解析器。

其作用就是使用模塊中的RawConfigParser()、ConfigParser()、SafeConfigParser()這三個方法(任選一種),創建一

個對象使用對象的方法對指定的配置文件做增刪改查操作。

本次使用的python版本為3.8,編譯器使用pycharm。

INI文件格式

INI配置文件組成:

section:表示一個區塊,由方括號及方括號中的名稱組成,section的范圍為當前方括號到下一個方括號的內容,如“DEFAULT”,“select”,“connect_mysql”。

      • 大小寫和空格檢查: section中的名稱在保存和獲取的時候是原樣保存和獲取的,即大小寫不一樣或者空格不一樣等都是不同的section;
      • 重復性檢查: 同一個配置文件中section名稱不允許重復。

option:表示section中的配置項,由key、分隔符和value組成的鍵值對,如“select”下的“broswer = Chrome”。

    • 大小寫檢查: key是大小寫不敏感的,保存進文件的時候會自動將key小寫保存,但value是大小寫敏感的;
    • 空格檢查: 通過key獲取value時,會自動將文件中的key和value前後空格去掉再進行匹配,即文件中保存為' broswer = Chrome '時,用'broswer'也可以獲取到對應的value值'Chrome';
    • 跨多行檢查: key是不能跨行的,但是value可以跨行,隻要第二行及之後行的縮進與第一行不同即可,一直到下一個option為止;
    • 重復性檢查: 和section一樣,同一section下的key是不允許重復的;
    • 分隔符: 可以是等號“=”或者冒號“:”。

註釋:行註釋用井號“#”或者分號“;”表示,特別需要註意的是必須得是行開頭(前面可以有空格),用在行中間的就不會算作是註釋瞭。

DEFAULT:這是一個特殊的section,會用作其他section的option取不到值時的備用值,或者可以理解為它是一個root,其他的section都是它的子section,但不是必須提供的。

讀取配置文件

import os
import configparser

conf = configparser.ConfigParser() # 類的實例化

curpath = os.path.dirname(os.path.realpath(__file__))
path = os.path.join(curpath,'read.ini')

conf.read(path,encoding="utf-8")
value = conf['select']['url']
print("通過read方法取得的值為:",value)

value = conf.get('login','username')
print('通過get方法取得的值:',value)

value = conf.items('login') # 讀取一個section中的所有數據,返回一個列表
print("通過items方法取得的值:",value)

value = conf.getint('connect_mysql','port') # 指定讀取數據的類型
print("指定數據類型取出的值:",value)

section = conf.sections() # 讀取配置文件中所有section
print(section)

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部