1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        如何利用python 讀取配置文件

        共 3466字,需瀏覽 7分鐘

         ·

        2021-01-13 01:40

        這篇文章主要介紹了如何利用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等方法,具體方法使用如下:

        ?代碼示例:

        1. import?configparser

        2. ?

        3. cf?=?configparser.ConfigParser()?# 實(shí)例化

        4. ?

        5. # read(filename) 讀取文件

        6. filename?=?cf.read(r'G:\api_test\configfile.ini',encoding='utf-8')

        7. ?

        8. # sections() 得到所有的section,以列表形式返回

        9. sec?=?cf.sections()

        10. print(sec)

        11. ?

        12. # 得到section下的所有option

        13. opt?=?cf.options("mysql")

        14. print(opt)

        15. ?

        16. # items 得到section的所有鍵值對(duì)

        17. value?=?cf.items("mysql")

        18. print(value)

        19. print(dict(value))?# 轉(zhuǎn)成字典類型

        20. ?

        21. # get(section,option) 得到section中的option值,返回string/int類型的結(jié)果

        22. mysql_host?=?cf.get("mysql","host")

        23. mysql_password?=?cf.getint("mysql","port")

        24. print(mysql_host,mysql_password)

        運(yùn)行以上代碼輸出如下:

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

        ?ConfigParser()類提供了寫入修改配置文件數(shù)據(jù)等方法,具體方法使用如下:

        ?在配置文件編輯如下信息:

        ?編輯如下代碼:

        1. import?configparser

        2. ?

        3. conf?=?configparser.ConfigParser()

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

        5. ?

        6. conf.set("code",?"code",?"6666")??# 修改指定section 的option

        7. conf.set("code",?"age",?"123")??# 增加指定section 的option

        8. conf.has_section("code")

        9. conf.has_option("code","age")

        10. #conf.remove_section("test")

        11. #conf.remove_option("test","haha")

        12. if?'test'?not?in?conf.sections():

        13. ????conf.add_section("test")??# 增加section

        14. ????conf.set("test",?"haha",?"123")??# 給新增的section 寫入option

        15. file?=?open(r'G:\api_test\configfile.ini',?'w',encoding='utf-8')

        16. conf.write(file)

        17. 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í)例如下:

        1. import?configparser

        2. import?os

        3. ?

        4. class?ReadConfig():

        5. ????def?__init__(self,?filepath=None):

        6. ?

        7. ????????root_dir?=?os.path.dirname(os.path.abspath('.'))????????# 獲取項(xiàng)目主路徑

        8. ????????# print("打印",root_dir)

        9. ????????configpath?=?os.path.join(root_dir,?"configfile.ini")??# 拼接路徑

        10. ????????# print("得到的路徑為",configpath)

        11. ????????self.cf?=?configparser.RawConfigParser()

        12. ????????self.cf.read(configpath,encoding='utf-8')

        13. ????def?get_cookie(self,?param):

        14. ????????value?=?self.cf.get("cookie",?param)

        15. ????????return?value

        16. ????def?get_sheet(self,param):

        17. ????????value?=?self.cf.get("sheet",param)

        18. ????????return?value

        19. ????def?get_mysql(self,param):

        20. ????????value?=?self.cf.get("mysql",param)

        21. ????????return?value

        22. ????def?get_code(self,param):

        23. ????????value?=?self.cf.get("code",param)

        24. ????????return?value

         這樣封裝成類后,后續(xù)其他模塊需要讀取配置文件數(shù)據(jù),就可以不用重復(fù)寫讀取配置文件的代碼,直接引入該封裝的類,并實(shí)例化對(duì)象調(diào)用類里面封裝的方法即可。

        以上就是如何利用python 讀取配置文件的詳細(xì)內(nèi)容

        1. 掃下方二維碼加老師微信

        2. 或是搜索老師微信號(hào):XTUOL1988【切記備注學(xué)習(xí)Python】

        3. 領(lǐng)取Python web開發(fā),Python爬蟲,Python數(shù)據(jù)分析,人工智能等學(xué)習(xí)教程。帶你從零基礎(chǔ)系統(tǒng)性的學(xué)好Python!

        4. 歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

          萬水千山總是情,點(diǎn)個(gè)【在看】行不行

        5. *聲明:本文于網(wǎng)絡(luò)整理,版權(quán)歸原作者所有,如來源信息有誤或侵犯權(quán)益,請(qǐng)聯(lián)系我們刪除或授權(quán)事

        瀏覽 57
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            久久婷婷五月综合 | chinese漂亮少妇videos | 美女扒开尿口让男人爽 | 四虎国产在线 | 午夜在线小视频 | 成人免费乱码大片a毛片视频网站 | 99国产一区 | 国产高潮又爽又无遮挡又免费 | 国产乱码精品一区二区三区五月婷 | 九九色l |