1. 程式人生 > 程式設計 >Python configparser模組應用過程解析

Python configparser模組應用過程解析

一、configparser模組是什麼

可以用來操作字尾為 .ini 的配置檔案;

python標準庫(就是python自帶的意思,無需安裝)

二、configparser模組基本使用

2.1 讀取 ini 配置檔案

#存在 config.ini 配置檔案,內容如下:
[DEFAULT]
excel_path = ../test_cases/case_data.xlsx
log_path = ../logs/test.log
log_level = 1

[email]
user_name = [email protected]
password = 123456

使用configparser模組讀取配置檔案

import configparser

#建立配置檔案物件
conf = configparser.ConfigParser()
#讀取配置檔案
conf.read('config.ini',encoding="utf-8")
#列表方式返回配置檔案所有的section
print( conf.sections() )  #結果:['default','email']
#列表方式返回配置檔案email 這個section下的所有鍵名稱
print( conf.options('email') )  #結果:['user_name','password']
#以[(),()]格式返回 email 這個section下的所有鍵值對
print( conf.items('email') )  #結果:[('user_name','[email protected]'),('password','123456')]
#使用get方法獲取配置檔案具體的值,get方法:引數1-->section(節) 引數2-->key(鍵名)
value = conf.get('default','excel_path')
print(value)

2.2 寫入 ini 配置檔案(字典形式)

import configparser

#建立配置檔案物件
conf = configparser.ConfigParser()
#'DEFAULT'為section的名稱,值中的字典為section下的鍵值對
conf["DEFAULT"] = {'excel_path' : '../test_cases/case_data.xlsx','log_path' : '../logs/test.log'}
conf["email"] = {'user_name':'[email protected]','password':'123456'}
#把設定的conf物件內容寫入config.ini檔案
with open('config.ini','w') as configfile:
  conf.write(configfile)

2.3 寫入 ini 配置檔案(方法形式)

import configparser

#建立配置檔案物件
conf = configparser.ConfigParser()
#讀取配置檔案
conf.read('config.ini',encoding="utf-8")
#在conf物件中新增section
conf.add_section('webserver')
#在section物件中新增鍵值對
conf.set('webserver','ip','127.0.0.1')
conf.set('webserver','port','80')
#修改'DEFAULT'中鍵為'log_path'的值,如沒有該鍵,則新建
conf.set('DEFAULT','log_path','test.log')
#刪除指定section
conf.remove_section('email')
#刪除指定鍵值對
conf.remove_option('DEFAULT','excel_path')
#寫入config.ini檔案
with open('config.ini','w') as f:
  conf.write(f)

上述3個例子基本闡述了configparser模組的核心功能項;

  • 例1中,encoding="utf-8"為了放置讀取的適合中文亂碼;
  • 例2你可以理解為在字典中新增資料,鍵:配置檔案的section,字串格式;值:section的鍵值對,字典格式;
  • 例3中在使用add_section方法時,如果配置檔案存在section,則會報錯;而set方法在使用時,有則修改,無則新建。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。