網站首頁 編程語言 正文
前言:
最近在接觸利用python來寫測試框架,本人也是個剛接觸python,所以是個小菜鳥,今天開始,一點點的記錄學習中的積累,方便以后的學習以及回顧,也希望能幫助跟我一樣的小菜鳥們一步步的成長起來。那么,下面就不廢話了,直接進入今天的主題。
配置文件作為一種可讀性很好的格式,非常適用于存儲程序中的配置數據。 在每個配置文件中,配置數據會被分組(比如“config”和 “cmd”)。 每個分組在其中指定對應的各個變量值。
如下:
# 定義config分組 [config] platformName=Android appPackage=com.romwe appActivity=com.romwe.SplashActivity # 定義cmd分組 [cmd] viewPhone=adb devices startServer=adb start-server stopServer=adb kill-server # 定義log分組 [log] log_error=true
基本的讀取操作:
- -read(filename)?????????????? 直接讀取文件內容
- -sections()????????????????????? 得到所有的section,并以列表的形式返回
- -options(section)??????????? 得到該section的所有option
- -items(section)??????????????? 得到該section的所有鍵值對
- -get(section,option)??????? 得到section中option的值,返回為string類型
- -getint(section,option)??? 得到section中option的值,返回為int類型,還有相應的getboolean()和getfloat() 函數。
在對配置文件進行讀寫操作前,我們需要先進行以下兩個操作:
1、實例化ConfigParser對象:
# 實例化configParser對象 cf = configparser.ConfigParser()
2、讀取配置文件
# 讀取config.ini文件 cf.read(config.ini)
然后進行配置文件的讀取操作。
以get為例,示例代碼如下:
# 定義方法,獲取config分組下指定name的值 def getConfigValue(self, name): value = self.cf.get("config", name) return value # 定義方法,獲取cmd分組下指定name的值 def getCmdValue(self, name): value = self.cf.get("cmd", name) return value
通過get
(section, option)方法,可以獲取指定分組下指定名稱的值,其他方法類似,可參照著嘗試。
基本的寫入操作:
- -write(fp)??將config對象寫入至某個 .init 格式的文件??Write?an?.ini-format?representation?of?the?configuration?state.
- -add_section(section)???添加一個新的section
- -set( section, option, value?? 對section中的option進行設置,需要調用write將內容寫入配置文件
- -remove_section(section)??刪除某個 section
- -remove_option(section, option)?
以set(section, option, value)為例,示例代碼如下:
# 定義方法,修改config分組下指定name的值value def setConfigValue(self, name, value): cfg = self.cf.set("config", name, value) fp = open(r'config.ini', 'w') cfg.write(fp)
其他方法可以自行嘗試。
配置文件中的名字是不區分大小寫的,如下兩個是等價的:
# 不區分大小寫,以下兩個等價,都獲取appActivity的值 self.cf.get("config", "appActivity") self.cf.get("config", "APPACTIVITY")
在解析時,getboolean()方法查找任何可行的值,例如以下幾個都是等價的:
# 以下取得的值都是等價的為ture [log] log_error=true log_error=TRUE log_error=1 log_error=yes
原文鏈接:https://my.oschina.net/u/3041656/blog/793467
相關推薦
- 2022-03-05 C語言宏函數container?of()簡介_C 語言
- 2022-09-08 Redis?Lua腳本實現ip限流示例_Redis
- 2022-03-17 初學Android之網絡封裝實例_Android
- 2022-07-06 詳解C語言中sizeof如何在自定義函數中正常工作_C 語言
- 2022-04-07 WPF常用控件用法及介紹_實用技巧
- 2022-11-30 Golang底層原理解析String使用實例_Golang
- 2023-12-16 SpringBoot之自定義Starter
- 2022-10-21 tomcat8中startup可以啟動tomcat8w無法啟動的問題分析_Tomcat
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支