yaml是专门用来写配置文件的语言,简洁强大,远比JSON格式方便,yaml在python语言中有PyYAML安装包。

       – 首先需要pip安装:pip install pyyaml

       – yaml基本语法规则:大小写敏感

                                          使用缩进表示层级关系

                                          缩进时不允许Tab键,只允许使用空格

                                          #  表示注释

————————————python代码读取yaml文件————————————–

      import  yaml

      import os

      # 获取当前脚本所在文件夹路径

      curpath = os.path.dirname(os.path.realpath(__file__))

      # print(curpath)

      # 获取yaml文件路径

      yamlpath = os.path.join(curpath, “cfgyaml.yaml”)

      # open方法打开文件直接读出来

      f = open(yamlpath, \’r\’, encoding=\’utf-8\’)

      cfg = f.read()

      print(type(cfg))

      # print(cfg)

      # 用load方法转字典

      d = yaml.load(cfg)

      print(type(d))

      print(d)

———————————cfgyaml.yaml文件内容如下————————————– 

# yaml中的数组,相当于python中的列表

– admin1: 123456

– admin2: 234567

– admin3: 345678

# yaml中的键值对,相当于python中的字典

# test1: 

#     user: username

#     pw: 123456

———————————————————————————————————————————————————

用yaml模块写入字典嵌套字典这种复杂的数据,会出现大括号{},不是真正的yaml文件数据,可以用ruamel模块解决。

安装:pip install ruamel.yaml

使用方法跟yaml差不多,只是在使用dump方法多一个参数:Dumper=yaml.RoundTripDumper

—————————python代码写入yaml文件———————————-

import os

from ruamel import yaml

# 将字典写入到yaml

desired_caps = {

                       \’platformName\’: \’Android\’,

                       \’platformVersion\’: \’7.0\’,

                       \’deviceName\’: \’ASRNW1111111111\’

                       \’appPackage\’: \’com.tencent.com\’,

                       \’appActivity\’: \’ui.LauncherUI\’,

                       \’automationName\’: \’Uiautomator2\’,

                       \’unicodeKeyboard\’: True,

                       \’resetKeyboard\’: True,

                       \’noReset\’: True,

                       \’chromeOptions\’: {\’androidProcess\’: \’com.tencent.com\’}

}

curpath = os.path.dirname(os.path.realpath(__file__))

yamlpath = os.path.join(curpath, “cfgyaml.yaml”)

 

# 写入到yaml文件

with open(yamlpath, \’w\’, encoding=”utf-8″) as f:

      yaml.dump(desired_caps, f, Dumper=yaml.RoundTripDumper)

——————————————————————————————————————–

使用ruamel.yaml模块也能读yaml文件,使用方法相对之前的yaml.load方法多加了一个参数:Loader=yaml.Loader

如:

     rea = open(yamlpath, \’r\’)

     a = rea.load()

     b = yaml.load(a, Loader=yaml.Loader)

     print(b)

版权声明:本文为peipei-Study原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/peipei-Study/p/12100724.html