• yaml语法

    • 格式
    • yaml2种写法
    • 安装PyYaml
    • python使用yaml

yaml语法

格式

它的基本语法规则如下
大小写敏感
使用缩进表示层级关系
缩进时不允许使用Tab键,只允许使用空格。
缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

YAML 支持的数据结构有三种
1、对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
2、数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
3、纯量(scalars):单个的、不可再分的值

对象的一组键值对,使用冒号结构表示。

animal: pets#或者如下格式
hash: { name: Steve, foo: bar }

数组

- Cat
- Dog
- Goldfish

#或者如下格式
animal: [Cat, Dog]

复合结构

languages:- Ruby- Perl- Python
websites:YAML: yaml.org Ruby: ruby-lang.org Python: python.org Perl: use.perl.org 

纯量纯量是最基本的、不可再分的值

        字符串布尔值整数浮点数Null时间日期

字符串:以下是5种表现格式

str: 这是一行字符串
str: '内容: 字符串'
s1: '内容\n字符串'
s2: "内容\n字符串"
str: 'labor''s day' 

yaml2种写法

我们来看一个完整的yaml配置文件

数据结构可以用类似大纲的缩排方式呈现,结构通过缩进来表示,连续的项目通过减号“-”来表示,map结构里面的key/value对用冒号“:”来分隔。样例如下:

house:family:name: Doeparents:- John
      - Jane
    children:- Paul
      - Mark
      - Simone
  address:number: 34street: Main Streetcity: Nowheretownzipcode: 12345

YAML也有用来描述好几行相同结构的数据的缩写语法,数组用’[]’包括起来,hash用’{}’来包括。因此,上面的这个YAML能够缩写成这样:

house:family: { name: Doe, parents: [John, Jane], children: [Paul, Mark, Simone] }address: { number: 34, street: Main Street, city: Nowheretown, zipcode: 12345 }

安装PyYaml

下载地址https://github.com/yaml/pyyaml
然后将其lib3\yaml包,放在python安装包lib包下,然后命令行监测是否安装成功即可

python使用yaml

我们初始化一个yaml配置文件

house:family:name: Doeparents:- John
      - Jane
  address:number: 34street: Main Street
import yaml
f = open('example.ini',encoding="utf-8")
x = yaml.load(f)
print(x)
print("---------")aproject = {'name': 'Silenthand Olleander','race': 'Human','traits': ['ONE_HAND', 'ONE_EYE']}
ret = yaml.dump(aproject)
print(ret)aproject = ["a","b","c"]
ret = yaml.dump(aproject)
print(ret)aproject = ("a","b","c")
ret = yaml.dump(aproject)
print(ret)aproject = {"a":1,"b":2}
ret = yaml.dump(aproject)
print(ret)

输出内容如下:

E:\python\python_sdk\python.exe E:/python/py_pro/5.configparse.py
{'house': {'family': {'name': 'Doe', 'parents': ['John', 'Jane']}, 'address': {'number': 34, 'street': 'Main Street'}}}
---------
name: Silenthand Olleander
race: Human
traits: [ONE_HAND, ONE_EYE][a, b, c][a, b, c]{a: 1, b: 2}Process finished with exit code 0

python基础-PyYaml操作yaml文件相关推荐

  1. yaml及使用PyYaml操作yaml文件详解

    1.yaml主要用途 YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便. 2.yaml支持的数据结构 数据结构名称 包含的数据类型 描述说明 纯量 字符串.布尔值.整数. ...

  2. python操作yaml文件

    python操作yaml文件 一 yaml文件 1.1 yaml文件 1.2 python读取yaml文件内容 1.3 封装yaml读取的类 一 yaml文件 1.1 yaml文件 1.2 pytho ...

  3. Python基础(十)--文件相关

    目录 Python基础(十)--文件相关 1 读写文件 1.1 获取文件对象 1.2 文件读取 1.3 文件写入 1.4 文件定位 2 文件与路径的操作 2.1 os模块 2.2 os.path模块 ...

  4. python通过PyYaml库操作yaml文件

    1.YAML文件介绍 YAML全称YAML Aint't a Markup Language(YAML不是一种标记语言),是一种易读的序列化语言 通常应用在一些数据代码分离的场合,比如配置文件中 2. ...

  5. pyyaml操作yaml配置文件基于python

    在测试工作中,可以使用yaml编写测试用例,执行测试用例时直接获取yaml中的用例数据进行测试(如:接口自动化测试) 1.什么是yaml 是一种可读的数据序列化语言,通常用于配置文件 非常简洁和强大, ...

  6. Python基础语法全体系 | 文件IO与常用文件操作模块

    <Python基础语法全体系>系列博文第六篇,本篇博文将讲解Python的文件IO操作,包括文件的打开.读取和写入.本文整理自疯狂python编程. 文章目录 使用pathlib操作目录 ...

  7. python修改yaml文件内容_Python操作Yaml文件

    最近开始使用Python3.x,所有今后无特殊说明,Python代表的就是Python3.x 最近在看代码时发现有人用Yaml -- Yet Another Markup Language :另一种标 ...

  8. Python基础(十三)——文件操作(open函数、close函数)

    本文以Python3以上为学习基础. 目录 1. 使用文件操作第一原则 2.open函数 2.1.文件打开模式 2.1.1.只读模式打开文件--只读(r) 2.1.2.读写模式打开文件--读写模式(r ...

  9. 享学课堂python基础学习day15之文件操作

    我是一个22年8月加入享学课堂的学生,主要学习python基础和爬虫课程,学到现在,发现以前的学习知识容易忘记,听了老师的建议之后,决定在CSDN写博客,可以复习自己学过的知识,废话不多说,文件操作里 ...

最新文章

  1. 史上更全面的数据库分库分表、数据一致性、主键分配思路!
  2. Python3 字符串切片 slice 操作
  3. POJ 1088(滑雪)
  4. ajax传递数组,后台更新
  5. Redis系列教程(三):如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
  6. 数据库都可以“自动驾驶”了,传统DBA何去何从?
  7. 如何让我们的VMware虚拟机上网——转载
  8. 创意排版!直通车简约正方形推广设计灵感
  9. 【图解】虚拟机下载安装以及Linux操作系统的配置CentOS安装
  10. 【架构】高可用高并发系统设计原则
  11. CardView学习和使用
  12. ASP.NET MVC5中局部视图的更新
  13. 通过Excel表格批量生成汉信码
  14. 什么是幂等,什么情况下需要幂等,如何实现幂等
  15. 笔记本外接2K显示器问题记录(集显Intel HD Graphic 3000)
  16. [ACL22] HIBRIDS:Hierarchical Biases for Structure-aware Long Document Summarization 阅读笔记
  17. 数字化孪生管理平台运用现状及技术前景
  18. 关于MacPorts
  19. 代码管理工具:Git
  20. 【学习笔记】超实数(Surreal Number)和不平等博弈

热门文章

  1. 用 jQuery.ajaxSetup 实现对请求和响应数据的过滤
  2. Java基本语法总结
  3. 2022-2028年全球与中国饲料核苷酸行业市场需求预测分析
  4. 装箱问题c语言函数,C语言基于贪心算法解决装箱问题的方法
  5. DDD | 领域驱动设计 Vs 敏捷 Vs 面向对象
  6. C#到底是面向对象还是面向过程
  7. 为什么css放头部、js放尾部
  8. 112家IT公司薪水一览表
  9. 【Sublime Text 3】Sublime Text 3 - cracked 3086
  10. 如何为自己的 CSDN博客设置自定义域名?