1. 程式人生 > 程式設計 >如何利用python 讀取配置檔案

如何利用python 讀取配置檔案

引言

在編寫介面自動化測試指令碼時,有時我們需要在程式碼中定義變數並給變數固定的賦值。為了統一管理和操作這些固定的變數,咱們一般會將這些固定的變數以一定規則配置到指定的配置檔案中,後續需要用到這些變數和變數值時通過程式碼讀取或者寫入資料到該配置檔案即可,使用配置檔案的好處就是不用在程式設計師寫死,可以使程式更靈活。因而對於python語言就封裝了configparser模組,用來處理指定格式的檔案(檔名稱一般為xxx.ini),配置檔案的格式跟windows下的ini配置檔案相似,可以包含一個或多個節(section),每個節可以有多個引數(鍵=值)。

注:目前python3版本操作配置檔案模組名稱變更為configparser,原有的python2版本配置檔案模組名稱變更為ConfigParser

configparser模組功能介紹

configparser模組主要封裝提供了ConfigParser()類、RawConfigParser()類、SafeConfigParser()類等,如下圖匯入configparser模組,可以檢視並使用模組下已經封裝好的所有類

如何利用python 讀取配置檔案

在configparser模組中主要還是使用封裝的ConfigParser()類提供的方法來操作配置檔案,對配置檔案進行資料讀取和寫入等。

具體的該模組python官網對其有完整的介紹:https://docs.python.org/3/library/configparser.html

配置檔案的格式如下:

  • 中括號“[ ]”內包含的為section。
  • section 下面為類似於key-value 的配置內容,一般是用賦值符“=”分隔。

示例:

如何利用python 讀取配置檔案

讀取配置檔案及其常用讀取指定資料方法

ConfigParser()類提供了操作讀取配置檔案、讀取指定配置檔案中section、section下的所有key-value等方法,具體方法使用如下:

如何利用python 讀取配置檔案

程式碼示例:

import configparser

cf = configparser.ConfigParser() # 例項化

# read(filename) 讀取檔案
filename = cf.read(r'G:\api_test\configfile.ini',encoding='utf-8')

# sections() 得到所有的section,以列表形式返回
sec = cf.sections()
print(sec)

# 得到section下的所有option
opt = cf.options("mysql")
print(opt)

# items 得到section的所有鍵值對
value = cf.items("mysql")
print(value)
print(dict(value)) # 轉成字典型別

# get(section,option) 得到section中的option值,返回string/int型別的結果
mysql_host = cf.get("mysql","host")
mysql_password = cf.getint("mysql","port")
print(mysql_host,mysql_password)

執行以上程式碼輸出如下:

如何利用python 讀取配置檔案

寫入配置檔案(增刪改操作)及其提供的操作方法

ConfigParser()類提供了寫入修改配置檔案資料等方法,具體方法使用如下:

如何利用python 讀取配置檔案

在配置檔案編輯如下資訊:

如何利用python 讀取配置檔案

編輯如下程式碼:

import configparser

conf = configparser.ConfigParser()
conf.read(r'G:\api_test\configfile.ini',encoding='utf-8')

conf.set("code","code","6666") # 修改指定section 的option
conf.set("code","age","123") # 增加指定section 的option
conf.has_section("code")
conf.has_option("code","age")
#conf.remove_section("test")
#conf.remove_option("test","haha")
if 'test' not in conf.sections():
conf.add_section("test") # 增加section
conf.set("test","haha","123") # 給新增的section 寫入option
file = open(r'G:\api_test\configfile.ini','w',encoding='utf-8')
conf.write(file)
file.close()

執行結束後如下:

如何利用python 讀取配置檔案

編輯修改配置檔案記得關閉配置檔案。

通過以上使用ConfigParser()類提供讀寫配置檔案的相關方法,就可以比較方便的操作配置檔案。but,以上向配置檔案讀取和寫入資料到配置檔案的程式碼,並沒有進行封裝。由於經常需要使用配置檔案進行資料讀取和寫入,因此建議將操作配置檔案讀寫的操作封裝成公共的模組。如操作讀取配置檔案的資料的封裝,配置檔案內容如下:

如何利用python 讀取配置檔案

新建read_config.py檔案,封裝的讀取配置檔案的程式碼,例項如下:

import configparser
import os

class ReadConfig():
def __init__(self,filepath=None):

root_dir = os.path.dirname(os.path.abspath('.')) # 獲取專案主路徑
# print("列印",root_dir)
configpath = os.path.join(root_dir,"configfile.ini") # 拼接路徑
# print("得到的路徑為",configpath)
self.cf = configparser.RawConfigParser()
self.cf.read(configpath,encoding='utf-8')
def get_cookie(self,param):
value = self.cf.get("cookie",param)
return value
def get_sheet(self,param):
value = self.cf.get("sheet",param)
return value
def get_mysql(self,param):
value = self.cf.get("mysql",param)
return value
def get_code(self,param):
value = self.cf.get("code",param)
return value

 這樣封裝成類後,後續其他模組需要讀取配置檔案資料,就可以不用重複寫讀取配置檔案的程式碼,直接引入該封裝的類,並例項化物件呼叫類裡面封裝的方法即可。

以上就是如何利用python 讀取配置檔案的詳細內容,更多關於python 讀取配置檔案的資料請關注我們其它相關文章!