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

Python--yaml文件写入的更多相关文章
- python yaml文件内容的读取
示例: (1)host_header.yaml 文件中的内容 host: https://testapp.goodiber.com/v2/ #dev1的测试环境域名 #请求接口的请求头中的共用参数 ...
- python yaml文件数据按原有的数据顺序dump
yml文件的更新后工具类: import os import yaml class YamlUtils(): def __init__(self,folder_name='config'): self ...
- python yaml文件读写
import yaml yaml_dict={"} with open("a.yaml", "w") as f: yaml.safe_dump(yam ...
- 12.python csv文件写入和读出
import csv headers = ["class", "name", "sex", "height", &quo ...
- linux下在用python向文件写入数据时'\n'不起作用
网上翻看一圈,大家都说利用write写数据换行,在linux下用'\n',windows下利用'\r\n',可是尝试了一下,'\n'在windows底下可换行,在linux底下居然不起作用,最后利用' ...
- python笔记20-yaml文件写入(ruamel.yaml)
前言 yaml作为配置文件是非常友好的一种格式,前面一篇讲了yaml的一些基础语法和读取方法,本篇继续讲yaml文件写入方法 用yaml模块写入字典嵌套字典这种复杂的数据,会出现大括号{ },不是真正 ...
- yaml文件解析详解
前言 yaml文件是什么?yaml文件其实也是一种配置文件类型,相比较ini,conf配置文件来说,更加的简洁,操作也更加简单,同时可以存放不同类型的数据,不会改变原有数据类型,所有的数据类型在读取时 ...
- yaml 文件解析
前言 yaml文件其实也是一种配置文件类型,相比较ini,conf配置文件来说,更加的简洁,操作也更加简单,同时可以存放不同类型的数据,不会改变原有数据类型,所有的数据类型在读取时都会原样输出,yam ...
- 使用python读取yaml文件
在做APP测试时,通常需要把参数存到一个字典变量中,这时可以将参数写入yaml文件中,再读取出来. 新建yaml文件(android_caps.yaml),文件内容为: platformName: A ...
随机推荐
- Entity Framework 一个表多个外键关联另外一张表的相同主键
一. 报错 异常:System.Data.Entity.Infrastructure.DbUpdateException: 更新条目时出错.有关详细信息,请参阅内部异常. ---> System ...
- java集合类型源码解析之ArrayList
前言 作为一个老码农,不仅要谈架构.谈并发,也不能忘记最基础的语言和数据结构,因此特开辟这个系列的文章,争取每个月写1~2篇关于java基础知识的文章,以温故而知新. 如无特别之处,这个系列文章所使用 ...
- 一个hin秀的小学三年级奥数题 [hin秀]
~~~~~~不知为何总会被小学的题虐哭QAQ,真的秀啊,毒害广大小朋友~~~~~~ 一个hin秀的小学三年级奥数题 [hin秀] 题目: 给出一个无限大的棋盘 n×n (n>0 , 是 ...
- OpenSL ES: OpenSL ES 简介
1. OpenSL ES 是什么 OpenSL ES (Open Sound Library for Embedded Systems)是无授权费.跨平台.针对嵌入式系统精心优化的硬件音频加速API. ...
- python操作excel实用脚本
import xlrd data = xlrd.open_workbook('/home/ppe/workspace/pythonwp/tianranqi_org.xls') table = data ...
- SurfaceView动态背景效果实现
package com.loaderman.customviewdemo; import android.content.Context; import android.graphics.*; imp ...
- RVCT编译错误 Cannot obtain license for Compiler
找不到文件 找不到文件 Error: C9932E: Cannot obtain license for Compiler (feature compiler) with license versio ...
- Django之model.form创建select标签
前言 之前我们学习了form表单验证用户输入格式和自动创建HTML,那么如果用户创建select标签时怎么办呢,先来看下这个东西: models.py 数据格式: class UserInfo(mod ...
- linux常用的命令和工具
screen 管理会话工具 与之相似的工具还有tmux # screen // 进入一个回话 .还可以给会话取名 screen -S modify_screen #vim screen.txt ...
- delphi两个取字串长度的函数strlen,length
━━━━━━━━━━━━━━━━━━━━━━━━━━ [strlen]PChar 串专用函数:串长度 procedure TForm1.BitBtn1Click(Sender: TObject); v ...