python:利用configparser模塊讀寫配置文件

Copy from : https://www.cnblogs.com/imyalost/p/8857896.html

本人註釋:Python2與Python3不同之處

  • pip install configparser
  • 在Python2中import ConfigParser
  • 在Python3中import configparser

在自動化測試過程中,爲了提高腳本的可讀性和降低維護成本,將一些通用信息寫入配置文件,將重複使用的方法寫成公共模塊進行封裝,使用時候直接調用即可。

這篇博客,介紹下python中利用configparser模塊讀寫配置文件的方法,僅供參考。。。

 

一、讀取文件

configparser模塊支持讀取.conf和.ini等類型的文件,那麼首先在文件夾新建一個.ini文件,寫入一些信息,如下圖:

示例代碼如下:

複製代碼

 1 # coding=utf-8
 2 import configparser
 3 import os
 4 
 5 os.chdir("E:\\Automation\\UI\\testcase")
 6 cf = configparser.ConfigParser()
 7 
 8 # read(filename) 讀文件內容
 9 filename = cf.read("test.ini")
10 print(filename)
11 
12 # sections() 得到所有的section,以列表形式返回
13 sec = cf.sections()
14 print(sec)
15 
16 # options(section) 得到section下的所有option
17 opt = cf.options("mysql")
18 print(opt)
19 
20 # items 得到section的所有鍵值對
21 value = cf.items("driver")
22 print(value)
23 
24 # get(section,option) 得到section中的option值,返回string/int類型的結果
25 mysql_host = cf.get("mysql","host")
26 mysql_password = cf.getint("mysql","password")
27 print(mysql_host,mysql_password)

複製代碼

執行腳本,結果如下所示:

1 ['test.ini']
2 ['driver', 'mysql']
3 ['host', 'port', 'username', 'password']
4 [('path', 'E:\\Automation\\UI\\testcase\\browser\\chromedriver.exe'), ('url', 'https://www.baidu.com/')]
5 127.0.0.1 123456

腳本解析:

cf.read(filename):讀取文件內容

cf.sections():得到所有的section,並且以列表形式返回

cf.options(section):得到section下所有的option

cf.items(option):得到該section所有的鍵值對

cf.get(section,option):得到section中option的值,返回string類型的結果

cf.getint(section,option):得到section中option的值,返回int類型的結果

 

二、寫入文件

如果需要在配置文件寫入內容,需要os函數幫忙,示例代碼如下:

複製代碼

 1 # coding=utf-8
 2 import configparser
 3 import os
 4 
 5 os.chdir("E:\\Automation\\UI\\testcase")
 6 cf = configparser.ConfigParser()
 7 
 8 # 往配置文件寫入內容
 9 
10 # add section 添加section項
11 # set(section,option,value) 給section項中寫入鍵值對
12 cf.add_section("mq")
13 cf.set("mq", "user", "laozhang")
14 cf.add_section("kafka")
15 cf.set("kafka", "user", "xiaozhang")
16  
17 # write to file
18 with open("test1.ini","w+") as f:
19     cf.write(f)

複製代碼

執行腳本,結果如下所示:

腳本解析:

cf.write(filename):將configparser對象寫入.ini類型的文件

add_section():添加一個新的section

add_set(section,option,value):對section中的option信息進行寫入

 

三、修改文件

還可以利用os函數對文件進行修改,示例代碼如下:

複製代碼

 1 # coding=utf-8
 2 import configparser
 3 import os
 4 
 5 os.chdir("E:\\Automation\\UI\\testcase")
 6 cf = configparser.ConfigParser()
 7 
 8 # 修改配置文件的內容
 9 
10 # remove_section(section)  刪除某個section的數值
11 # remove_option(section,option) 刪除某個section下的option的數值
12 cf.read("test1.ini")
13 cf.remove_option("kafka","user")
14 cf.remove_section("mq")
15 
16 # write to file
17 with open("test1.ini","w+") as f:
18     cf.write(f) 

複製代碼

執行腳本,結果如下所示:

腳本解析:

cf.read(filename):讀取文件(這裏需要注意的是:一定要先讀取文件,再進行修改)

cf.remove_section(section):刪除文件中的某個section的數值

cf.remove_option(section,option):刪除文件中某個section下的option的數值

 

如上所示,就是configparser模塊讀寫配置文件的方法,代碼僅爲參考,具體使用請自行實踐。。。

 

轉載請註明出處,商用請徵得作者本人同意,謝謝!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章