解決pycharm編輯區(qū)顯示yaml文件層級結(jié)構(gòu)遇中文亂碼問題
1、問題現(xiàn)象:

2、解決辦法:
editor的字體設(shè)置為DialogInput

補充知識:Python +Selenium 支持多項目集中配置文件管理Yaml
在自動化測試項目管理經(jīng)常會遇到2個問題:
1.我手頭上有多個需要做自動化的項目,我每個項目都要新建一個項目文件嗎?
2.一些基礎(chǔ)的配置信息如何高效的進行管理?
爭對這2個問題,這邊采用了Yaml 進行配置文件的一個管理:YAML 是一種簡潔的非標記語言。YAML以數(shù)據(jù)為中心,使用空白,縮進,分行組織數(shù)據(jù),從而使得表示更加簡潔易讀。
基本規(guī)則
YAML有以下基本規(guī)則:
1、大小寫敏感
2、使用縮進表示層級關(guān)系
3、禁止使用tab縮進,只能使用空格鍵
4、縮進長度沒有限制,只要元素對齊就表示這些元素屬于一個層級。
5、使用#表示注釋
6、字符串可以不用引號標注
其他具體的語法需要大家百度一下下了!我們直接上源碼!
給個文件試例:如圖右3個項目配置文件(apk;cm,gf),一個整體配置文件

讀取文件源碼:(file_reader.py)里面還可以放入其它文件類型的讀取方法(后話)
""
文件讀取。YamlReader讀取yaml文件
"""
import yaml
import os
from xlrd import open_workbook
class YamlReader:
def __init__(self, yamlf):
if os.path.exists(yamlf):
self.yamlf = yamlf
else:
raise FileNotFoundError('文件不存在!')
self._data = None
@property
def data(self):
# 如果是第一次調(diào)用data,讀取yaml文檔,否則直接返回之前保存的數(shù)據(jù)
if not self._data:
with open(self.yamlf, 'rb') as f:
self._data = list(yaml.safe_load_all(f)) # load后是個generator,用list組織成列表
return self._data
之后就是我們不同的調(diào)用了:(config.py)
""" 讀取配置。這里配置文件用的yaml,也可用其他如XML,INI等,需在file_reader中添加相應的Reader進行處理。 """ import os from util_s.file_reader import YamlReader # 通過當前文件的絕對路徑,其父級目錄一定是框架的base目錄,然后確定各層的絕對路徑。如果你的結(jié)構(gòu)不同,可自行修改。 # 之前直接拼接的路徑,修改了一下,用現(xiàn)在下面這種方法,可以支持linux和windows等不同的平臺,也建議大家多用os.path.split()和os.path.join(),不要直接+'\\xxx\\ss'這樣 BASE_PATH = os.path.split(os.path.dirname(os.path.abspath(__file__)))[0] CONFIG_FILE = os.path.join(BASE_PATH, 'Config', 'config.yml') GF_CONFIG_FILE = os.path.join(BASE_PATH, 'Config', 'gf_config.yml') CM_CONFIG_FILE = os.path.join(BASE_PATH, 'Config', 'cm_config.yml') APK_CONFIG_FILE = os.path.join(BASE_PATH, 'Config', 'apk_config.yml') class Config: def __init__(self, config=""): if config == "gf": self.config = YamlReader(GF_CONFIG_FILE).data if config == "cm": self.config = YamlReader(CM_CONFIG_FILE).data if config == "apk": self.config = YamlReader(APK_CONFIG_FILE).data else: self.config = YamlReader(CONFIG_FILE).data def get(self, element, index=0): """ yaml是可以通過'---'分節(jié)的。用YamlReader讀取返回的是一個list,第一項是默認的節(jié),如果有多個節(jié),可以傳入index來獲取。 這樣我們其實可以把框架相關(guān)的配置放在默認節(jié),其他的關(guān)于項目的配置放在其他節(jié)中??梢栽诳蚣苤袑崿F(xiàn)多個項目的測試。 """ return self.config[index].get(element)
最后就是每次使用的方法啦?。ㄔ谄渌]件相關(guān)文章中有用到)
from util_s.config import Config
config = Config("gf")
mail_host = config.get("mail_host")
my_sender = config.get("my_sender") # 發(fā)件人郵箱賬號
my_pass = config.get("my_pass") # 發(fā)件人郵箱密碼
my_user = config.get("my_user") # 收件人郵箱賬號,我這邊發(fā)送給自己
具體Yaml 文件內(nèi)容貼圖一個

以上這篇解決pycharm編輯區(qū)顯示yaml文件層級結(jié)構(gòu)遇中文亂碼問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pycharm內(nèi)置終端及遠程SSH工具的使用教程圖文詳解
這篇文章主要介紹了Pycharm內(nèi)置終端及遠程SSH工具的使用教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
使用Filter過濾python中的日志輸出的實現(xiàn)方法
這篇文章主要介紹了使用Filter過濾python中的日志輸出,本文給大家分享幾種方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07
Pandas常用的數(shù)據(jù)結(jié)構(gòu)和常用的數(shù)據(jù)分析技術(shù)
Pandas是Python中用于數(shù)據(jù)處理和分析的強大庫,其最常用的數(shù)據(jù)結(jié)構(gòu)是Series和DataFrame。Series類似于一維數(shù)組,可以表示一列數(shù)據(jù);DataFrame類似于二維表格,可以表示多列數(shù)據(jù)2023-04-04
Python的CGIHTTPServer交互實現(xiàn)詳解
本篇文章主要給大家詳細分析了Python的CGIHTTPServer交互實現(xiàn)過程以及相關(guān)代碼分享,有興趣的參考學習下。2018-02-02
python使用dlib進行人臉檢測和關(guān)鍵點的示例
這篇文章主要介紹了python使用dlib進行人臉檢測和關(guān)鍵點的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12
解決更改AUTH_USER_MODEL后出現(xiàn)的問題
這篇文章主要介紹了解決更改AUTH_USER_MODEL后出現(xiàn)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05

