<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何利用python 讀取配置文件

          共 3466字,需瀏覽 7分鐘

           ·

          2021-01-13 01:40

          這篇文章主要介紹了如何利用python 讀取配置文件,幫助大家更好的理解和使用python,感興趣的朋友可以了解下

          引言

          ??????? 在編寫接口自動化測試腳本時,有時我們需要在代碼中定義變量并給變量固定的賦值。為了統(tǒng)一管理和操作這些固定的變量,咱們一般會將這些固定的變量以一定規(guī)則配置到指定的配置文件中,后續(xù)需要用到這些變量和變量值時通過代碼讀取或者寫入數(shù)據(jù)到該配置文件即可,使用配置文件的好處就是不用在程序員寫死,可以使程序更靈活。因而對于python語言就封裝了configparser模塊,用來處理指定格式的文件(文件名稱一般為xxx.ini),配置文件的格式跟windows下的ini配置文件相似,可以包含一個或多個節(jié)(section), 每個節(jié)可以有多個參數(shù)(鍵=值)。

          ? ? ? ? 注:目前python3版本操作配置文件模塊名稱變更為configparser,原有的python2版本配置文件模塊名稱變更為ConfigParser

          configparser模塊功能介紹

          ?configparser模塊主要封裝提供了ConfigParser()類、RawConfigParser()類、SafeConfigParser()類等,如下圖導(dǎo)入configparser模塊,可以查看并使用模塊下已經(jīng)封裝好的所有類

          在configparser模塊中主要還是使用封裝的ConfigParser()類提供的方法來操作配置文件,對配置文件進行數(shù)據(jù)讀取和寫入等。

          具體的該模塊python官網(wǎng)對其有完整的介紹:https://docs.python.org/3/library/configparser.html

          配置文件的格式如下:

          • 中括號“[ ]”內(nèi)包含的為section。

          • section 下面為類似于key-value 的配置內(nèi)容,一般是用賦值符“=”分隔。

          ? ? ? 示例:

          ?讀取配置文件及其常用讀取指定數(shù)據(jù)方法

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

          ?代碼示例:

          1. import?configparser

          2. ?

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

          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的所有鍵值對

          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)

          運行以上代碼輸出如下:

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

          ?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()

          運行結(jié)束后如下:

          ?編輯修改配置文件記得關(guān)閉配置文件。

          通過以上使用ConfigParser()類提供讀寫配置文件的相關(guān)方法,就可以比較方便的操作配置文件。but,以上向配置文件讀取和寫入數(shù)據(jù)到配置文件的代碼,并沒有進行封裝。由于經(jīng)常需要使用配置文件進行數(shù)據(jù)讀取和寫入,因此建議將操作配置文件讀寫的操作封裝成公共的模塊。如操作讀取配置文件的數(shù)據(jù)的封裝,配置文件內(nèi)容如下:

          新建read_config.py文件,封裝的讀取配置文件的代碼,實例如下:

          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('.'))????????# 獲取項目主路徑

          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ù)寫讀取配置文件的代碼,直接引入該封裝的類,并實例化對象調(diào)用類里面封裝的方法即可。

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

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

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

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

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

            萬水千山總是情,點個【在看】行不行

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

          瀏覽 57
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费色情电影链接 | 亚洲狼在线 | 午夜精品久久久久久久 | 亚洲天堂91 | 围产精品久久久久久久黄无码 |