A. python中四種配置文件
常用的配置文件後綴是.ini、.conf、.py,當然還有使用.json、.txt的,推薦使用常用的.ini、.py,配置文件的名字一般是config便於理解和使用。
ini配置文件,這類配置文件我們使用內置configparser庫來使用,它可以實現配置文件的寫入、更新、刪除、讀取等操作非常方便,建議使用這種方式。
新建一個config.ini的配置文件內容如下,編碼格式要是 utf-8 以免出錯。:
其中[]中的是section節點,該節點下的等式是option即鍵=值
然後每一行寫一個option ,每個選項就是一個option。直接寫名字,後面加 " = " 再加上它的值就行,字元串的表示不要加引號,否則引號也會被解析出來。
可以在配置文件中加入注釋 ,但是注釋必須是單獨的一行,且以 「#」 開頭。只是每次運行時不會讀入注釋,只要運行一次,寫入文件後,所有的注釋都會消失。
config.json文件
使用python內置的 json 標准庫進行解析ini文件。
load() 從json文件中讀取json格式數據
loads() 將字元串類型數據轉化為json格式數據
mp() 將json格式數據保存到文件
mps() 將json格式數據保存為字元串類型
TOML的語法廣泛地由key = "value"、[節名]、#注釋構成。
支持以下數據類型:字元串、整形、浮點型、布爾型、日期時間、數組和圖表。
config.toml文件
使用外部庫 toml 解析toml文件。
安裝:pip install toml
讀取文件
安裝:
YAML是目前最推薦的配置文件格式。優秀的配置文件標准它幾乎都有:
容易閱讀和修改,支持注釋。
支持豐富的數據類型。
不同格式的明確表達。
yaml使用時需要注意:
yaml強制縮進。雖然不規定具體縮進幾個空格,但是同一級的內容要保持相同的縮進。
冒號後面一定要加空格, 否則無法解析。
python解析 yaml 可以使用pyyaml庫,操作和標準的文件操作非常類似:
得到的data就是解析後的數據,在python當中,它是一個嵌套的字典:
想獲取某一項配置,再通過字典的操作獲取:
config.yaml文件
讀取
B. 用python實現介面測試(十、Yaml操作)
前言
什麼是YAML?
YAML參考了其他多種語言,包括:XML、C語言、Python、Perl以及電子郵件格式RFC2822。 Clark Evans在2001年5月在首次發表了這種語言,另外Ingy döt Net與Oren Ben-Kiki也是這語言的共同設計者。
YAML是"YAML Ain't a Markup Language"(YAML不是一種置標語言)的遞歸縮寫。 在開發的這種語言時,YAML 的意思其實是:"Yet Another Markup Language"(仍是一種置標語言),
格式及示例
數據結構可以用類似大綱的縮排方式呈現,結構通過縮進來表示,連續的項目通過減號「-」來表示,map結構裡面的key/value對用冒號「:」來分隔。
示例:
PyYAML是一個Python的YAML解析器。
安裝指令:pip install PyYaml
官網地址: 網站
示例1
示例2
C. Python 自動化處理 Yaml 文件-
Yaml文件內容—示例1:
Yaml文件內容—示例2:
從上述示例文件內容可以看到 Yaml 數據結構:
1). 對象:鍵值對的集合(簡稱 "映射或字典")
例如:family 和 address 這兩個對象後面分別有對應的鍵值對集合。
2). 鍵值對用冒號 「:」 結構表示,冒號與值之間需用空格分隔
例如:
family 對象中的 key 為 name 與其對應的 value 值 Smile_Family 之間是使用空格分隔的。
address 對象中的 key 為 province 與其對應的 value 值 BeiJing 之間是使用空格分隔的。
3). 數組:一組按序排列的值(簡稱 "序列或列表"),數組前加有 「-」 符號,符號與值之間需用空格分隔
例如:
parents 中的 John 和 Jane
children 中的 Lily 和 Frank
4). 純量(scalars):單個的、不可再分的值。例如:字元串、bool值、整數、浮點數、時間、日期、null等
None值可用null也可用 ~ 表示;
yaml文件內容如下:
Python解析輸出為:
這個例子輸出一個字典,其中value包括所有基本類型
Yaml文件內容如下:
Python解析輸出為:
Yaml文件內容如下:
Python輸出為:
如果字元串沒有空格或特殊字元,不需要加引號,但如果其中有空格或特殊字元,則需要加引號。
這里要注意單引號和雙引號的區別:
單引號中的特殊字元轉到 Python 會被轉義,也就是到最後是原樣輸出;
雙引號不會被 Python 轉義,到最後是輸出了特殊字元;
Yaml文件內容如下:
Python輸出: