如何利用python 讀取配置文件
在編寫接口自動(dòng)化測試腳本時(shí),有時(shí)我們需要在代碼中定義變量并給變量固定的賦值。為了統(tǒng)一管理和操作這些固定的變量,咱們一般會(huì)將這些固定的變量以一定規(guī)則配置到指定的配置文件中,后續(xù)需要用到這些變量和變量值時(shí)通過代碼讀取或者寫入數(shù)據(jù)到該配置文件即可,使用配置文件的好處就是不用在程序員寫死,可以使程序更靈活。因而對于python語言就封裝了configparser模塊,用來處理指定格式的文件(文件名稱一般為xxx.ini),配置文件的格式跟windows下的ini配置文件相似,可以包含一個(gè)或多個(gè)節(jié)(section), 每個(gè)節(jié)可以有多個(gè)參數(shù)(鍵=值)。
注:目前python3版本操作配置文件模塊名稱變更為configparser,原有的python2版本配置文件模塊名稱變更為ConfigParser
configparser模塊功能介紹configparser模塊主要封裝提供了ConfigParser()類、RawConfigParser()類、SafeConfigParser()類等,如下圖導(dǎo)入configparser模塊,可以查看并使用模塊下已經(jīng)封裝好的所有類
在configparser模塊中主要還是使用封裝的ConfigParser()類提供的方法來操作配置文件,對配置文件進(jìn)行數(shù)據(jù)讀取和寫入等。
具體的該模塊python官網(wǎng)對其有完整的介紹:https://docs.python.org/3/library/configparser.html
配置文件的格式如下:
中括號(hào)“[ ]”內(nèi)包含的為section。 section 下面為類似于key-value 的配置內(nèi)容,一般是用賦值符“=”分隔。示例:
讀取配置文件及其常用讀取指定數(shù)據(jù)方法
ConfigParser()類提供了操作讀取配置文件、讀取指定配置文件中section、section下的所有key-value等方法,具體方法使用如下:
代碼示例:
import configparser cf = configparser.ConfigParser() # 實(shí)例化 # read(filename) 讀取文件filename = cf.read(r’G:api_testconfigfile.ini’,encoding=’utf-8’) # sections() 得到所有的section,以列表形式返回sec = cf.sections()print(sec) # 得到section下的所有optionopt = cf.options('mysql')print(opt) # items 得到section的所有鍵值對value = cf.items('mysql')print(value)print(dict(value)) # 轉(zhuǎn)成字典類型 # get(section,option) 得到section中的option值,返回string/int類型的結(jié)果mysql_host = cf.get('mysql','host')mysql_password = cf.getint('mysql','port')print(mysql_host,mysql_password)
運(yùn)行以上代碼輸出如下:
寫入配置文件(增刪改操作)及其提供的操作方法
ConfigParser()類提供了寫入修改配置文件數(shù)據(jù)等方法,具體方法使用如下:
在配置文件編輯如下信息:
編輯如下代碼:
import configparser conf = configparser.ConfigParser()conf.read(r’G:api_testconfigfile.ini’,encoding=’utf-8’) conf.set('code', 'code', '6666') # 修改指定section 的optionconf.set('code', 'age', '123') # 增加指定section 的optionconf.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 寫入optionfile = open(r’G:api_testconfigfile.ini’, ’w’,encoding=’utf-8’)conf.write(file)file.close()
運(yùn)行結(jié)束后如下:
編輯修改配置文件記得關(guān)閉配置文件。
通過以上使用ConfigParser()類提供讀寫配置文件的相關(guān)方法,就可以比較方便的操作配置文件。but,以上向配置文件讀取和寫入數(shù)據(jù)到配置文件的代碼,并沒有進(jìn)行封裝。由于經(jīng)常需要使用配置文件進(jìn)行數(shù)據(jù)讀取和寫入,因此建議將操作配置文件讀寫的操作封裝成公共的模塊。如操作讀取配置文件的數(shù)據(jù)的封裝,配置文件內(nèi)容如下:
新建read_config.py文件,封裝的讀取配置文件的代碼,實(shí)例如下:
import configparserimport os class ReadConfig(): def __init__(self, filepath=None): root_dir = os.path.dirname(os.path.abspath(’.’))# 獲取項(xiàng)目主路徑# 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
這樣封裝成類后,后續(xù)其他模塊需要讀取配置文件數(shù)據(jù),就可以不用重復(fù)寫讀取配置文件的代碼,直接引入該封裝的類,并實(shí)例化對象調(diào)用類里面封裝的方法即可。
以上就是如何利用python 讀取配置文件的詳細(xì)內(nèi)容,更多關(guān)于python 讀取配置文件的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. msxml3.dll 錯(cuò)誤 800c0019 系統(tǒng)錯(cuò)誤:-2146697191解決方法2. ASP常用日期格式化函數(shù) FormatDate()3. 解析原生JS getComputedStyle4. 輕松學(xué)習(xí)XML教程5. HTML DOM setInterval和clearInterval方法案例詳解6. 阿里前端開發(fā)中的規(guī)范要求7. xpath簡介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理8. jsp實(shí)現(xiàn)登錄驗(yàn)證的過濾器9. css代碼優(yōu)化的12個(gè)技巧10. jsp+servlet簡單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))
