欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決pycharm編輯區(qū)顯示yaml文件層級(jí)結(jié)構(gòu)遇中文亂碼問(wèn)題

 更新時(shí)間:2020年04月27日 09:29:06   作者:bubblelone  
這篇文章主要介紹了解決pycharm編輯區(qū)顯示yaml文件層級(jí)結(jié)構(gòu)遇中文亂碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

1、問(wèn)題現(xiàn)象:

2、解決辦法:

editor的字體設(shè)置為DialogInput

補(bǔ)充知識(shí):Python +Selenium 支持多項(xiàng)目集中配置文件管理Yaml

在自動(dòng)化測(cè)試項(xiàng)目管理經(jīng)常會(huì)遇到2個(gè)問(wèn)題:

1.我手頭上有多個(gè)需要做自動(dòng)化的項(xiàng)目,我每個(gè)項(xiàng)目都要新建一個(gè)項(xiàng)目文件嗎?

2.一些基礎(chǔ)的配置信息如何高效的進(jìn)行管理?

爭(zhēng)對(duì)這2個(gè)問(wèn)題,這邊采用了Yaml 進(jìn)行配置文件的一個(gè)管理:YAML 是一種簡(jiǎn)潔的非標(biāo)記語(yǔ)言。YAML以數(shù)據(jù)為中心,使用空白,縮進(jìn),分行組織數(shù)據(jù),從而使得表示更加簡(jiǎn)潔易讀。

基本規(guī)則

YAML有以下基本規(guī)則:

1、大小寫(xiě)敏感

2、使用縮進(jìn)表示層級(jí)關(guān)系

3、禁止使用tab縮進(jìn),只能使用空格鍵

4、縮進(jìn)長(zhǎng)度沒(méi)有限制,只要元素對(duì)齊就表示這些元素屬于一個(gè)層級(jí)。

5、使用#表示注釋

6、字符串可以不用引號(hào)標(biāo)注

其他具體的語(yǔ)法需要大家百度一下下了!我們直接上源碼!

給個(gè)文件試?yán)喝鐖D右3個(gè)項(xiàng)目配置文件(apk;cm,gf),一個(gè)整體配置文件

讀取文件源碼:(file_reader.py)里面還可以放入其它文件類(lèi)型的讀取方法(后話)

""
文件讀取。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后是個(gè)generator,用list組織成列表
  return self._data

之后就是我們不同的調(diào)用了:(config.py)

"""
讀取配置。這里配置文件用的yaml,也可用其他如XML,INI等,需在file_reader中添加相應(yīng)的Reader進(jìn)行處理。
"""
import os
from util_s.file_reader import YamlReader
 
# 通過(guò)當(dāng)前文件的絕對(duì)路徑,其父級(jí)目錄一定是框架的base目錄,然后確定各層的絕對(duì)路徑。如果你的結(jié)構(gòu)不同,可自行修改。
# 之前直接拼接的路徑,修改了一下,用現(xiàn)在下面這種方法,可以支持linux和windows等不同的平臺(tái),也建議大家多用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是可以通過(guò)'---'分節(jié)的。用YamlReader讀取返回的是一個(gè)list,第一項(xiàng)是默認(rèn)的節(jié),如果有多個(gè)節(jié),可以傳入index來(lái)獲取。
  這樣我們其實(shí)可以把框架相關(guān)的配置放在默認(rèn)節(jié),其他的關(guān)于項(xiàng)目的配置放在其他節(jié)中。可以在框架中實(shí)現(xiàn)多個(gè)項(xiàng)目的測(cè)試。
  """
  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ā)件人郵箱賬號(hào)
my_pass = config.get("my_pass") # 發(fā)件人郵箱密碼
my_user = config.get("my_user") # 收件人郵箱賬號(hào),我這邊發(fā)送給自己

具體Yaml 文件內(nèi)容貼圖一個(gè)

以上這篇解決pycharm編輯區(qū)顯示yaml文件層級(jí)結(jié)構(gòu)遇中文亂碼問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Pycharm內(nèi)置終端及遠(yuǎn)程SSH工具的使用教程圖文詳解

    Pycharm內(nèi)置終端及遠(yuǎn)程SSH工具的使用教程圖文詳解

    這篇文章主要介紹了Pycharm內(nèi)置終端及遠(yuǎn)程SSH工具的使用教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 使用Filter過(guò)濾python中的日志輸出的實(shí)現(xiàn)方法

    使用Filter過(guò)濾python中的日志輸出的實(shí)現(xiàn)方法

    這篇文章主要介紹了使用Filter過(guò)濾python中的日志輸出,本文給大家分享幾種方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Pandas常用的數(shù)據(jù)結(jié)構(gòu)和常用的數(shù)據(jù)分析技術(shù)

    Pandas常用的數(shù)據(jù)結(jié)構(gòu)和常用的數(shù)據(jù)分析技術(shù)

    Pandas是Python中用于數(shù)據(jù)處理和分析的強(qiáng)大庫(kù),其最常用的數(shù)據(jù)結(jié)構(gòu)是Series和DataFrame。Series類(lèi)似于一維數(shù)組,可以表示一列數(shù)據(jù);DataFrame類(lèi)似于二維表格,可以表示多列數(shù)據(jù)
    2023-04-04
  • Python的CGIHTTPServer交互實(shí)現(xiàn)詳解

    Python的CGIHTTPServer交互實(shí)現(xiàn)詳解

    本篇文章主要給大家詳細(xì)分析了Python的CGIHTTPServer交互實(shí)現(xiàn)過(guò)程以及相關(guān)代碼分享,有興趣的參考學(xué)習(xí)下。
    2018-02-02
  • Python生成隨機(jī)驗(yàn)證碼代碼實(shí)例解析

    Python生成隨機(jī)驗(yàn)證碼代碼實(shí)例解析

    這篇文章主要介紹了Python生成隨機(jī)驗(yàn)證碼代碼實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python安裝scipy的方法步驟

    python安裝scipy的方法步驟

    在本篇文章里小編給各位分享了關(guān)于python怎么安裝scipy的具體方法和實(shí)例代碼,需要的朋友們學(xué)習(xí)下。
    2019-06-06
  • pandas中聚合函數(shù)agg的具體用法

    pandas中聚合函數(shù)agg的具體用法

    Pandas中的的agg()函數(shù)為aggregate的縮寫(xiě).總數(shù)、合計(jì)、聚合的意思.是一個(gè)功能非常強(qiáng)大的函數(shù).在Pandas中可以利用agg()對(duì)Series、DataFrame以及groupby()后的結(jié)果進(jìn)行聚合操作,下面這篇文章主要給大家介紹了關(guān)于pandas中聚合函數(shù)agg的具體用法,需要的朋友可以參考下
    2022-07-07
  • python使用dlib進(jìn)行人臉檢測(cè)和關(guān)鍵點(diǎn)的示例

    python使用dlib進(jìn)行人臉檢測(cè)和關(guān)鍵點(diǎn)的示例

    這篇文章主要介紹了python使用dlib進(jìn)行人臉檢測(cè)和關(guān)鍵點(diǎn)的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • 解決更改AUTH_USER_MODEL后出現(xiàn)的問(wèn)題

    解決更改AUTH_USER_MODEL后出現(xiàn)的問(wèn)題

    這篇文章主要介紹了解決更改AUTH_USER_MODEL后出現(xiàn)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • Python 怎么定義計(jì)算N的階乘的函數(shù)

    Python 怎么定義計(jì)算N的階乘的函數(shù)

    這篇文章主要介紹了Python 怎么定義計(jì)算N的階乘的函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03

最新評(píng)論