最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何利用python 讀取配置文件

 更新時(shí)間:2021年01月06日 09:32:05   作者:那年故鄉(xiāng)的明月  
這篇文章主要介紹了如何利用python 讀取配置文件,幫助大家更好的理解和使用python,感興趣的朋友可以了解下

引言

        在編寫接口自動(dòng)化測(cè)試腳本時(shí),有時(shí)我們需要在代碼中定義變量并給變量固定的賦值。為了統(tǒng)一管理和操作這些固定的變量,咱們一般會(huì)將這些固定的變量以一定規(guī)則配置到指定的配置文件中,后續(xù)需要用到這些變量和變量值時(shí)通過代碼讀取或者寫入數(shù)據(jù)到該配置文件即可,使用配置文件的好處就是不用在程序員寫死,可以使程序更靈活。因而對(duì)于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()類提供的方法來操作配置文件,對(duì)配置文件進(jìn)行數(shù)據(jù)讀取和寫入等。

具體的該模塊python官網(wǎng)對(duì)其有完整的介紹: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_test\configfile.ini',encoding='utf-8')
 
# sections() 得到所有的section,以列表形式返回
sec = cf.sections()
print(sec)
 
# 得到section下的所有option
opt = cf.options("mysql")
print(opt)
 
# items 得到section的所有鍵值對(duì)
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_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()

運(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 configparser
import 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í)例化對(duì)象調(diào)用類里面封裝的方法即可。

以上就是如何利用python 讀取配置文件的詳細(xì)內(nèi)容,更多關(guān)于python 讀取配置文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 嘗試使用Python多線程抓取代理服務(wù)器IP地址的示例

    嘗試使用Python多線程抓取代理服務(wù)器IP地址的示例

    這篇文章主要介紹了嘗試使用Python多線程抓取代理服務(wù)器IP地址的示例,盡管有GIL的存在使得Python并不能真正實(shí)現(xiàn)多線程并行,需要的朋友可以參考下
    2015-11-11
  • Python獲取用戶輸入的方法詳解

    Python獲取用戶輸入的方法詳解

    在Python中,獲取用戶輸入是一個(gè)基礎(chǔ)且常見的操作,它允許程序與用戶進(jìn)行交互,Python通過內(nèi)置的input()函數(shù)來實(shí)現(xiàn)這一功能,以下將詳細(xì)探討如何在Python中獲取用戶輸入,并涵蓋多個(gè)方面,需要的朋友可以參考下
    2024-09-09
  • Python爬蟲回測(cè)股票的實(shí)例講解

    Python爬蟲回測(cè)股票的實(shí)例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于Python爬蟲回測(cè)股票的實(shí)例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • Python traceback模塊獲取異常信息的使用

    Python traceback模塊獲取異常信息的使用

    Python的traceback模塊提供了多種方法來獲取和展示異常的堆棧信息,本文主要介紹了Python traceback模塊獲取異常信息的使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • Pytorch?Mac?GPU?訓(xùn)練與測(cè)評(píng)實(shí)例

    Pytorch?Mac?GPU?訓(xùn)練與測(cè)評(píng)實(shí)例

    這篇文章主要為大家介紹了Pytorch?Mac?GPU?訓(xùn)練與測(cè)評(píng)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 基于spring boot 日志(logback)報(bào)錯(cuò)的解決方式

    基于spring boot 日志(logback)報(bào)錯(cuò)的解決方式

    今天小編就為大家分享一篇基于spring boot 日志(logback)報(bào)錯(cuò)的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python數(shù)據(jù)結(jié)構(gòu)之棧詳解

    Python數(shù)據(jù)結(jié)構(gòu)之棧詳解

    棧和隊(duì)列是在程序設(shè)計(jì)中常見的數(shù)據(jù)類型,從數(shù)據(jù)結(jié)構(gòu)的角度來講,棧和隊(duì)列也是線性表,是操作受限的線性表。本文將詳細(xì)介紹一下Python中的棧,感興趣的可以了解一下
    2022-03-03
  • Python實(shí)現(xiàn)清理重復(fù)文件功能的示例代碼

    Python實(shí)現(xiàn)清理重復(fù)文件功能的示例代碼

    在電腦上或多或少的存在一些重復(fù)文件,體積小的倒沒什么,如果體積大的就很占內(nèi)存了。本文用python制作了一個(gè)刪除重復(fù)文件的小工具,核心代碼很簡(jiǎn)單,希望對(duì)你有所幫助
    2022-07-07
  • Python Request類源碼實(shí)現(xiàn)方法及原理解析

    Python Request類源碼實(shí)現(xiàn)方法及原理解析

    這篇文章主要介紹了Python Request類源碼實(shí)現(xiàn)方法及原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • tensorflow學(xué)習(xí)筆記之mnist的卷積神經(jīng)網(wǎng)絡(luò)實(shí)例

    tensorflow學(xué)習(xí)筆記之mnist的卷積神經(jīng)網(wǎng)絡(luò)實(shí)例

    這篇文章主要為大家詳細(xì)介紹了tensorflow學(xué)習(xí)筆記之mnist的卷積神經(jīng)網(wǎng)絡(luò)實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04

最新評(píng)論

博白县| 宁河县| 郓城县| 林口县| 常宁市| 翁牛特旗| 屯昌县| 长春市| 和政县| 陇西县| 大宁县| 武平县| 乐清市| 石林| 城口县| 九龙坡区| 石渠县| 肥西县| 马鞍山市| 元氏县| 大名县| 墨江| 常山县| 盘锦市| 梅州市| 唐河县| 柳河县| 定日县| 平和县| 日土县| 周口市| 神木县| 上栗县| 汶上县| 大城县| 彩票| 甘洛县| 黄陵县| 唐河县| 江津市| 梁平县|