解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题

1、问题现象:

2、解决办法:

editor的字体设置为DialogInput

补充知识:Python +Selenium 支持多项目集中配置文件管理Yaml

在自动化测试项目管理经常会遇到2个问题:

1.我手头上有多个需要做自动化的项目,我每个项目都要新建一个项目文件吗?

2.一些基础的配置信息如何高效的进行管理?

争对这2个问题,这边采用了Yaml 进行配置文件的一个管理:YAML 是一种简洁的非标记语言。YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读。

基本规则

YAML有以下基本规则:

1、大小写敏感

2、使用缩进表示层级关系

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):
  # 如果是第一次调用data,读取yaml文档,否则直接返回之前保存的数据
  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

之后就是我们不同的调用了:(config.py)

"""
读取配置。这里配置文件用的yaml,也可用其他如XML,INI等,需在file_reader中添加相应的Reader进行处理。
"""
import os
from util_s.file_reader import YamlReader

# 通过当前文件的绝对路径,其父级目录一定是框架的base目录,然后确定各层的绝对路径。如果你的结构不同,可自行修改。
# 之前直接拼接的路径,修改了一下,用现在下面这种方法,可以支持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是可以通过'---'分节的。用YamlReader读取返回的是一个list,第一项是默认的节,如果有多个节,可以传入index来获取。
  这样我们其实可以把框架相关的配置放在默认节,其他的关于项目的配置放在其他节中。可以在框架中实现多个项目的测试。
  """
  return self.config[index].get(element)

最后就是每次使用的方法啦!(在其他邮件相关文章中有用到)

from util_s.config import Config

config = Config("gf")
mail_host = config.get("mail_host")
my_sender = config.get("my_sender") # 发件人邮箱账号
my_pass = config.get("my_pass") # 发件人邮箱密码
my_user = config.get("my_user") # 收件人邮箱账号,我这边发送给自己

具体Yaml 文件内容贴图一个

以上这篇解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决PyCharm控制台输出乱码的问题

    最近公司新换了台电脑,各种开发环境要重新配置,想想Paas确实还是有市场的,如果有了,这种情况可以省下不少气力.吐槽一下,言归正传 装完python后,继续装好PyCharm.把之前的程序导进来试运行下安装是否成功,发现控制台里的显示结果有乱码.乱码部分是一个目录的输出,这个目录里含有中文路径 网上搜了下,有人说把下面图中的两个Encoding设置为UTF-8会解决这个问题.这么配置了下,发现不起作用,即使我代码里本身已经用了UTF-8编码了. 又过了两天,期间有时间就换着关键词百度,终于发现了

  • python中Pycharm 输出中文或打印中文乱码现象的解决办法

    1. 确保文件开头加上以下代码: # -*- coding:utf-8 -*- 还可以加上 import sys reload(sys) sys.setdefaultencoding('utf-8') 确保以下. 如果还是没有解决中文乱码,那么进行方法2. 2. 进入setting 单击打开,单击 修改完成后,结果如下 单击"ok". 成功. 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • python中yaml配置文件模块的使用详解

    简述 和GNU一样,YAML是一个递归着说"不"的名字.不同的是,GNU对UNIX说不,YAML说不的对象是XML. YAML不是XML. 为什么不是XML呢?因为: YAML的可读性好. YAML和脚本语言的交互性好. YAML使用实现语言的数据类型. YAML有一个一致的信息模型. YAML易于实现. 上面5条也就是XML不足的地方.同时,YAML也有XML的下列优点: YAML可以基于流来处理: YAML表达能力强,扩展性好. 总之,YAML试图用一种比XML更敏捷的方式,来完成

  • 解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题

    1.问题现象: 2.解决办法: editor的字体设置为DialogInput 补充知识:Python +Selenium 支持多项目集中配置文件管理Yaml 在自动化测试项目管理经常会遇到2个问题: 1.我手头上有多个需要做自动化的项目,我每个项目都要新建一个项目文件吗? 2.一些基础的配置信息如何高效的进行管理? 争对这2个问题,这边采用了Yaml 进行配置文件的一个管理:YAML 是一种简洁的非标记语言.YAML以数据为中心,使用空白,缩进,分行组织数据,从而使得表示更加简洁易读. 基本规

  • 解决pycharm界面不能显示中文的问题

    主题的修改: File -> Settings , 弹出的窗口中: Appearance & Behavior -> Appearance , 可以修改"Theme". 换成别的主题如图显示,更换为windows的Theme,界面左侧的目录就可以正常显示中文了 以上这篇解决pycharm界面不能显示中文的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 解决idea开发遇到javascript动态添加html元素时中文乱码的问题

    起因 一个几个月前做的小网站,这两天翻出来再看看,发现JavaScript文件中动态添加html元素中的中文乱码了,但是从后台获取的动态中文资源没问题,只有js文件中的静态中文资源,加载到网页中显示乱码 不要在意日期中年份部分的错误 过程 在网上看了很多博客,总结到最后就是要把tomcat.jsp.js.servlet的编码格式统一即可,但是我确定我早就将编码统一为utf-8 包括JavaScript文件的编码格式也多次重写为其他编码格式然后再次重写为utf-8,依然不行 结果 多次尝试无果,我

  • 解决idea中Terminal终端无法执行GIT命令+Terminal 中文乱码问题

    在使用 IDEA 进行开发的时候,经常会用到 Git 进行代码管理,如果再开一个 Docker 窗口的话,窗口切换来切换去的很不方便 为了简单方便,我们可以直接在 IDEA 中使用自带的 Terminal,这样就可以达到在 IDEA 主界面敲代码,侧边栏敲 Git 命令的效果 但是自带的 Terminal 默认的配置是 Cmd 窗口,直接使用 Git 命令会对中文进行 Unicode 转码,也就是所谓的乱码 这里简单的介绍下具体的配置流程以及使用 Git 命令会引起的中文 Unicode 编码的

  • 解决python中画图时x,y轴名称出现中文乱码的问题

    如下所示: #-*- coding:utf-8 -*- import numpy as np import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties #k与客户端处理时间的值之间的关系 x=range(2,51,2) y1=[5.393128497232703, 9.57638681757734, 13.828038570286598, 17.88060602988053, 22.943

  • jsp传参 servlet接收中文乱码问题的解决方法

    在公司实习了8个月,一直都是做android和h5的,但是发现做程序连一点服务都不会该怎么办,所以最近开始学起了java,不知道是不是因为框架学多了,现在看起springmvc框架比以前看起来简单太多了,这里我是准备从hibernate开始学习,毕竟数据是根本嘛,首先我用的是hibernate+servlet,但是在jsp页面传参到servlet的时候中文一直乱码,我尝试了好多方法,最后还是解决了. 第一,首先看清项目的编码,jsp页面的编码 第二,修改tomcat 下面的server.xml文

  • JavaScript BASE64算法实现(完美解决中文乱码)

    JavaScript 的 BASE64 算法 var BASE64={ enKey: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', deKey: new Array( -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -

  • 解决pycharm安装后代码区不能编辑的问题

    此问题是由于最新的pycharm在安装时自动装了vimVim插件 你可以在tools Vim emulator将对勾去掉就可以了. 以上这篇解决pycharm安装后代码区不能编辑的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 解决pycharm py文件运行后停止按钮变成了灰色的问题

    这两天被这个问题折磨得要死,把pycharm卸载了还是没解决,后来终于在一篇博客中看见,然后终于解决了 问题界面如下: 1. 每次运行后都会跳出一个 python console,并且前面还会显示一大堆奇怪信息:import sys; print('Python %s on %s' % (sys.version, sys.platform)) sys.path.extend 2. 右上角的停止按钮变成灰色了(应该是红色) 解决办法:在右上角的下拉三角头,打开 edit configuration

  • 解决pycharm运行出错,代码正确结果不显示的问题

    昨天手贱,觉得自己装的Python版本太低,重新安装了一个,安装完成后运行出现错误: Fatal Python error: initfsencoding: unable to load the file system codec ModuleNotFoundError: No module named 'encodings' Current thread 0x000032e0 (most recent call first): 解决办法: 如图所示的地址,将新下载的Python压缩包解压后替换

随机推荐