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)

笔记||Python3进阶之读取和写入yaml配置文件的更多相关文章

  1. 转载-python学习笔记之输入输出功能读取和写入数据

    读取.写入和 Python 在 “探索 Python” 系列以前的文章中,学习了基本的 Python 数据类型和一些容器数据类型,例如tuple.string 和 list.其他文章讨论了 Pytho ...

  2. 关于java读取和写入properties配置文件的内容

    一般通过使用流的方式进行读取 代码示例如下: package com.zznode.transmit.util; import java.io.FileInputStream; import java ...

  3. Python学习笔记_从CSV读取数据写入Excel文件中

    本示例特点: 1.读取CSV,写入Excel 2.读取CSV里具体行.具体列,具体行列的值 一.系统环境 1. OS:Win10 64位英文版 2. Python 3.7 3. 使用第三方库:csv. ...

  4. 笔记||Python3进阶之调用外部程序

    像wget可以下载文件 ffmpeg可以切割.合并.转换.录制视频 free命令可以查看linux内存使用信息 python提供了库来调用外部程序.命令?> 最常见的两种方法:       ①o ...

  5. 笔记||Python3进阶之装饰器

    # 装饰器# 特征: 是用一个@开头的字符串# 装饰器通常用来装饰函数.或者类的方法# 被装饰后的函数,通常是在原有的函数基础上,会多出增加一点功能# 一般来说装饰器本身也是一个函数## def te ...

  6. Python学习笔记五(读取提取写入文件)

    #Python打开读取一个文件内容,然后写入一个新的文件中,并对某些字段进行提取,写入新的字段的脚本,与大家共同学习. import os import re def get_filelist(dir ...

  7. python读取并写入mat文件

    用matlab生成一个示例mat文件: clear;clc matrix1 = magic(5); matrix2 = magic(6); save matData.mat 用python3读取并写入 ...

  8. python读取yaml配置文件

    支持多种语言:python.js.golang.java.c.c++ YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读写.它实质上是一种通用的数据串行化格式. 它的基本语法规则如下 ...

  9. python聚类算法实战详细笔记 (python3.6+(win10、Linux))

    python聚类算法实战详细笔记 (python3.6+(win10.Linux)) 一.基本概念:     1.计算TF-DIF TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库 ...

随机推荐

  1. python 在linux上面安装beautifulsoup4(bs4) No module named 'bs4'

    续费了我的服务器 重做系统成了Linux服务器 然后想把Windown上的Python脚本放上去运行 但是出现了 No module named 'bs4' 的问题 pip install bs4 试 ...

  2. 接口测试,如何构建json类型的参数值

    1.json类型参数传入,实际传输的时候是转化为一中字符串类型的格式,所以如data=”{}”,该参数用引号包含传入,“{}”里面的key都应该为双引号,value为字符串的也应该是双引号,最后一个v ...

  3. PS——牛奶字

    一.新建800*600像素的背景,设置前景色到透明渐变(黑到白),线性渐变,从上到下画一条直线 二.用矩形选框工具在背景上方1/2位置画一个矩形,Ctrl+Delete填充颜色 三.输入文字,设置图层 ...

  4. Tomcat笔试题!

    1.企业常见的中间件产品有哪些? 商业:nginx企业版,jobss开源:nginx社区版,tomcat,apache 2.Tomcat软件早期名字及其主要作用? Tomcat的前身为Catalina ...

  5. 计算机二级-C语言-程序填空题-190115记录-fprintf()函数和fscanf()函数的使用。

    //给定程序,函数fun的功能是:将自然数1~10以及它们的平方根写到名为myflie3.txt的文本文件中,然后再顺序读出显示在屏幕上. //重难点:fprintf()函数和fscanf()函数的使 ...

  6. 2.1.FastDFS-单机拆分版-单机版安装配置

    Centos610系列配置 1.什么是FastDFS? FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负 ...

  7. VBA 学习笔记 - 日期

    date() 返回当前的系统日期 返回格式为 YYYY/MM/DD CDate() 学习资料:https://www.yiibai.com/vba/vba_cdate_function.html 将有 ...

  8. Python学习笔记:变量

    什么是变量? 一般的理解是,变量是一个存储数据的容器 但是在python中的变量只存储数据的引用 变量的特性: 并不直接存储数据,而是引用着某个具体的数据 我们可以人为改变这个引用 定义变量 方式 变 ...

  9. IDEA 查看字节码

    参考:https://www.jianshu.com/p/18953ec8c0b7 打开工具栏 输入参数: 参数: $JDKPath$\bin\javap.exe -c $FileClass$ $Ou ...

  10. pwn之exp问题反馈和ASLR认知

    如上问题是我执行脚本遇到的,改了脚本几次,依然没变,嗯...... 当我用了百度,据说是ALSR没关,的确,这导致我脚本中的addr是一个随机数,从而攻击失败 ##0x00:引用一下查到的知识:在传统 ...