Python读取和存储yaml文件的方法

YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)。

YAML 的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)。

基本语法

大小写敏感
使用缩进表示层级关系
缩进不允许使用tab,只允许空格
缩进的空格数不重要,只要相同层级的元素左对齐即可
'#'表示注释

数据类型

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

关于yaml的简单介绍就到这里,今天需要用Python来读取/存储yml文件,废话补多少,直接看具体的操作:

#!usr/bin/env python
# encoding:utf-8
from __future__ import division

"""
__Author__:沂水寒城
功能: yaml 操作
"""

import sys
import yaml

def write2Yaml(data, save_path="test.yaml"):
    """
    存储yaml文件
    """
    with open(save_path, "w") as f:
        yaml.dump(data, f)

def loadData(data="config.yaml"):
    """
    加载yaml文件
    """
    with open(data, "r") as f:
        content = f.read()
    yamlData = yaml.load(content)
    print("yamlData_type: ", type(yamlData))
    print("yamlData: ", yamlData)
    return yamlData

if __name__ == "__main__":
    data = {
        "kind": "SeldonDeployment",
        "spec": {
            "name": "test-deployment",
            "predictors": [
                {
                    "graph": {
                        "endpoint": {"type": "REST"},
                        "type": "MODEL",
                        "name": "step_one",
                        "children": {
                            "endpoint": {"type": "REST"},
                            "type": "MODEL",
                            "name": "step_two",
                            "children": {
                                "endpoint": {"type": "REST"},
                                "type": "MODEL",
                                "name": "step_three",
                                "children": [],
                            },
                        },
                    },
                    "componentSpecs": [
                        {
                            "spec": {
                                "containers": [
                                    {
                                        "image": "seldonio/step_one:1.0",
                                        "name": "step_one",
                                    },
                                    {
                                        "image": "seldonio/step_two:1.0",
                                        "name": "step_two",
                                    },
                                    {
                                        "image": "seldonio/step_three:1.0",
                                        "name": "step_three",
                                    },
                                ]
                            }
                        }
                    ],
                    "name": "example",
                    "replicas": 1,
                }
            ],
        },
        "apiVersion": "machinelearning.seldon.io/v1alpha2",
        "metadata": {"name": "seldon-model"},
    }

    write2Yaml(data, save_path="test.yaml")

    yamlData = loadData(data="test.yaml")

    print(yamlData == data)
 

上述测试用的test.yaml文件如下:

apiVersion: machinelearning.seldon.io/v1alpha2
kind: SeldonDeployment
metadata:
  name: seldon-model
spec:
  name: test-deployment
  predictors:
  - componentSpecs:
    - spec:
        containers:
        - image: seldonio/step_one:1.0
          name: step_one
        - image: seldonio/step_two:1.0
          name: step_two
        - image: seldonio/step_three:1.0
          name: step_three
    graph:
      children:
        children:
          children: []
          endpoint:
            type: REST
          name: step_three
          type: MODEL
        endpoint:
          type: REST
        name: step_two
        type: MODEL
      endpoint:
        type: REST
      name: step_one
      type: MODEL
    name: example
    replicas: 1

在上述代码中可以看到我操作的yaml文件后缀都写的是yaml,其实写成yml也是可以的。如下所示:

到此这篇关于Python读取和存储yaml文件的方法的文章就介绍到这了,更多相关Python读取和存储yaml文件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解Python读取yaml文件多层菜单

    需要用到的Python知识点 Python的对象属性方法: 用到字典{key:value}值的提取: 列表的增加: if循环结合break的使用: yaml文件读取: 代码如下: #!/usr/bin/python34 import sys,os,re,yaml,time #reload(sys) #sys.setdefaultencoding('utf-8') ######################对input输入字符类型判断并转化##################### def in

  • Python读取yaml文件的详细教程

    yaml简介 1.yaml [ˈjæməl]: Yet Another Markup Language :另一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大,之前用ini也能写配置文件,看了yaml后,发现这个更直观,更方便,有点类似于json格式.在自动化测试用的相当多所以需要小伙伴们要熟练掌握 2.yaml基本语法规则: 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 #表示注释,从这个字符

  • Python读取YAML文件过程详解

    这篇文章主要介绍了Python读取YAML文件过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 YAML语法 学习手册 Python读取方法: import yaml with open('demo1.yaml', 'r', encoding='utf-8') as f: file_content = f.read() content = yaml.load(file_content, yaml.FullLoader) print(con

  • 基于Python和PyYAML读取yaml配置文件数据

    一.首先我们需要安装 PyYAML 第三方库 直接使用 pip install PyYAML 就可以(这里我之前是装过的,所以提示我PyYAML已经在这个目录下了,是5.1.2版本的) 二.先看一下我的yaml配置文件中数据的格式 特点: 1.大小写敏感 2.使用缩进表示层级关系 3.缩进的时候使用的是空格,不是tab键(因为在写python脚本的时候可能会习惯用tab键进行缩进,这里的缩进只能使用空格.只要同层级的对齐,空一格或者空两格都是没有关系的) 4.#号表示注释 (这不就是python

  • python读取配置文件方式(ini、yaml、xml)

    零.前言 python代码中配置文件是必不可少的内容.常见的配置文件格式有很多中:ini.yaml.xml.properties.txt.py等. 一.ini文件 1.1 ini文件的格式 ; 注释内容 [url] ; section名称 baidu = https://www.jb51.net port = 80 [email] sender = 'xxx@qq.com' 注意section的名称不可以重复,注释用分号开头. 1.2 读取 configparser python自带的confi

  • Python自动化测试中yaml文件读取操作

    什么是yaml 一种标记语言.yaml 是专门用来写配置文件的语言,非常简洁和强大 更直观,更方便,有点类似于json格式 yaml文件格式:test.yaml 安装yaml pip install pyyaml yaml基本语法规则 大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格. 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可 #表示注释,从这个字符一直到行尾,都会被解析器忽略,这个和python的注释一样 键值对(dict) yaml文件 user: ad

  • python读取yaml文件后修改写入本地实例

    首先安装pip install ruamel.yaml 用于修改yaml文件 #coding:utf-8 from ruamel import yaml def up_yml(ip_server): with open('./../docker-compose-demo.yml', encoding="utf-8") as f: content = yaml.load(f, Loader=yaml.RoundTripLoader) # 修改yml文件中的参数 content['serv

  • Python读取和存储yaml文件的方法

    YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)的递归缩写.在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言). YAML 的语法和其他高级语言类似,并且可以简单表达清单.散列表,标量等数据形态.它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构.各种配置文件.倾印调试内容.文件大纲(例如:许多电子邮件标题格式和YAML

  • python读取并写入mat文件的方法

    先给大家介绍下python读取并写入mat文件的方法 用matlab生成一个示例mat文件: clear;clc matrix1 = magic(5); matrix2 = magic(6); save matData.mat 用python3读取并写入mat文件: import scipy.io data = scipy.io.loadmat('matData.mat') # 读取mat文件 # print(data.keys()) # 查看mat文件中的所有变量 print(data['ma

  • python读取和保存mat文件的方法

    目录 一.mat文件 二.python中读取mat文件 1.读取文件 2.保存文件 首先我们谈谈MarkDown编辑器,我感觉些倒是挺方便的,因为用惯了LaTeX,对于MarkDown还是比较容易上手的,但是我发现,MarkDown中有这样几个问题一直没能找到具体的解决方法: 图片大小的问题.在LaTeX中我们可以调整图片的大小,以适应整个文本:字体,字号大小的设置.在MarkDown里面标题倒是挺大的,但是正文却显得太小,不是很喜欢里面的字体. 主要发现上面两个问题导致编辑出来的文本挺难看.

  • 一文搞懂Python读取text,CSV,JSON文件的方法

    目录 前言 打开文件 Python 中的文件读取模式 读取文本文件 读取 CSV 文件 读取 JSON 文件 总结 前言 文件是无处不在的,无论我们使用哪种编程语言,处理文件对于每个程序员都是必不可少的 文件处理是一种用于创建文件.写入数据和从中读取数据的过程,Python 拥有丰富的用于处理不同文件类型的包,从而使得我们可以更加轻松方便的完成文件处理的工作 本文大纲: 使用上下文管理器打开文件 Python 中的文件读取模式 读取 text 文件 读取 CSV 文件 读取 JSON 文件 打开

  • Python使用PyYAML库读写yaml文件的方法

    目录 一,YAML 简介 二,YAML 语法 三,安装第三方yaml文件处理库PyYAML 四,读取yaml文件 1,从yaml中读取字典 2,从yaml中读取list 3,从yaml中读取元组 4,从yaml中读取多组数据 五,写入yaml文件 1,单组数据写入yaml文件 2,多组数据写入yaml文件 Python中yaml文件的读写(使用PyYAML库).最近在搭建自动化测试项目过程中经常遇到yaml文件的读写,为了方便后续使用,决定记下笔记. 最近在搭建自动化测试项目过程中经常遇到yam

  • Python实现读取及写入csv文件的方法示例

    本文实例讲述了Python实现读取及写入csv文件的方法.分享给大家供大家参考,具体如下: 新建csvData.csv文件,数据如下: 具体代码如下: # coding:utf-8 import csv # 读取csv文件方式1 csvFile = open("csvData.csv", "r") reader = csv.reader(csvFile) # 返回的是迭代类型 data = [] for item in reader: print(item) dat

  • python 读取目录下csv文件并绘制曲线v111的方法

    实例如下: # -*- coding: utf-8 -*- """ Spyder Editor This temporary script file is located here: C:\Users\user\.spyder2\.temp.py """ """ Show how to modify the coordinate formatter to report the image "z"

  • Python读取系统文件夹内所有文件并统计数量的方法

    大家先看一下Python os模块中的部分函数 python 路径相关的函数 os.listdir(dirname):列出dirname下的目录和文件 os.getcwd():获得当前工作目录 os.curdir:返回当前目录('.') os.chdir(dirname):改变工作目录到dirname os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false os.path.isfile(name):判断name是不是一个文件,不存在name也返回fa

  • python geopandas读取、创建shapefile文件的方法

    shapefile是GIS中非常重要的一种数据类型,在ArcGIS中被称为要素类(Feature Class),主要包括点(point).线(polyline)和多边形(polygon).作为一种十分常见的矢量文件格式,geopandas对shapefile提供了很好的读取和写出支持,其DataFrame结构相当于GIS数据中的一张属性表,使得可以直接操作矢量数据属性表,使得在python中操作地理数据更方便.本文给大家介绍下用Python脚本中对Shapefile文件(.shp,.shx,.d

  • python读取查看npz/npy文件数据以及数据完全显示方法实例

    目录 python读取npz/npy文件 python查看npz/npy文件 附:python-读取和保存npy文件示例代码 总结 python读取npz/npy文件 npz和npy文件都可以直接使用numpy读写. import numpy as np ac = np.load('mydata.npz') ac.files python查看npz/npy文件 要查看其中某一项的数据: M = ac['M'] M 显示的值带省略号,要完全显示,执行: np.set_printoptions(th

随机推荐