• Python--yaml文件写入


    原文地址:https://www.cnblogs.com/yoyoketang/p/9255109.html

    yaml作为配置文件是非常友好的一种格式,前面一篇讲了yaml的一些基础语法和读取方法,本篇继续讲yaml文件写入方法
    用yaml模块写入字典嵌套字典这种复杂的数据,会出现大括号{ },不是真正的yaml文件数据,可以用ruamel模块就解决。
    安装方法:

    pip install ruamel.yaml

    yaml文件写入

    1.用原生的yaml模块写入这种字典嵌套字典的复杂数据

    import os
    import yaml
    
    # 作者:上海-悠悠 QQ交流群:330467341
    
    # 将字典写入到yaml
    desired_caps = {
                    'platformName': 'Android',
                    'platformVersion': '7.0',
                    'deviceName': 'A5RNW18316011440',
                    'appPackage': 'com.tencent.mm',
                    'appActivity': '.ui.LauncherUI',
                    'automationName': 'Uiautomator2',
                    'unicodeKeyboard': [True,"hh"],
                    'resetKeyboard': True,
                    'noReset': True,
                    'chromeOptions': {'androidProcess': 'com.tencent.mm:tools'}
                    }
    
    curpath = os.path.dirname(os.path.realpath(__file__))
    yamlpath = os.path.join(curpath, "caps.yaml")
    
    # 写入到yaml文件
    with open(yamlpath, "w", encoding="utf-8") as f:
        yaml.dump(desired_caps, f)

    2.运行完之后,在当前脚本文件夹目录会生成一个caps.yaml文件,打开后效果如下

    3.运行完之后,发现字典嵌套的字典,出现了大括号:{androidProcess: 'com.tencent.mm:tools'},这不是真正的yaml数据,不是我们想要的,解决办法看下文

    ruamel.yaml写入

    1.先pip安装ruamel.yam模块

    pip install ruamel.yaml

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

    import os
    from ruamel import yaml
    
    # 作者:上海-悠悠 QQ交流群:330467341
    
    # 将字典写入到yaml
    desired_caps = {
                    'platformName': 'Android',
                    'platformVersion': '7.0',
                    'deviceName': 'A5RNW18316011440',
                    'appPackage': 'com.tencent.mm',
                    'appActivity': '.ui.LauncherUI',
                    'automationName': 'Uiautomator2',
                    'unicodeKeyboard': True,
                    'resetKeyboard': True,
                    'noReset': True,
                    'chromeOptions': {'androidProcess': 'com.tencent.mm:tools'}
                    }
    
    curpath = os.path.dirname(os.path.realpath(__file__))
    yamlpath = os.path.join(curpath, "caps.yaml")
    
    # 写入到yaml文件
    with open(yamlpath, "w", encoding="utf-8") as f:
        yaml.dump(desired_caps, f, Dumper=yaml.RoundTripDumper)

    3.运行完之后结果:

    ruamel.yaml读yaml

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

  • 相关阅读:
    Django-admin导出到表格
    Django1.11.4中文文档
    Django+uwsgi+nginx+angular.js项目部署
    angular.js 入门
    枚举类型的总结
    基于websocket的页面聊天程序
    java网络编程(三):一个类似QQ的聊天程序
    java网络编程(二)
    java网络编程(一)
    java中的序列化与反序列化,还包括将多个对象序列化到一个文件中
  • 原文地址:https://www.cnblogs.com/wangyanyan/p/11194568.html
Copyright © 2020-2023  润新知