pyyaml模块是一种文件数据处理格式的方法,常用与生成、解析或修改.yaml配置文件

  1.常见.yaml文件格式内容如下

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

  2.pyyaml模块的简单使用

# -*- coding:utf-8 -*-
# Author:Wong Du '''
以下是pyyaml模块的简单用法,
详细请见:https://pyyaml.org/wiki/PyYAMLDocumentation''' import yaml ### Part1
print(yaml.load("""
- wong
- dudu
- caiyun
"""))
# 效果:['wong', 'dudu', 'caiyun'] ### Part2
a = yaml.load("""
name:
wong:
age:
24
dudu:
age:
23
""")
print(a)
# 效果:{'name': {'dudu': {'age': 23}, 'wong': {'age': 24}}} ### Part3
# '---'作为分隔符分隔多个字典,加载documents内的三个dict
documents = """
---
name: The Set of Gauntlets 'Pauraegen'
description:
A set of handgear with sparks that crackle
across its knuckleguards.
---
name: The Set of Gauntlets 'Paurnen'
description:
A set of gauntlets that gives off a foul,
acrid odour yet remains untarnished.
---
name: The Set of Gauntlets 'Paurnimmen'
description:
A set of handgear, freezing with unnatural cold.
"""
# 解析多个字典,要用load_all,解析documents内容生成一个生成器
b = yaml.load_all(documents)
b_data_list = []
for data in b:
print(data)
b_data_list.append(data)
'''
效果:
{'name': "The Set of Gauntlets 'Pauraegen'", 'description': 'A set of handgear with sparks that crackle across its knuckleguards.'}
{'name': "The Set of Gauntlets 'Paurnen'", 'description': 'A set of gauntlets that gives off a foul, acrid odour yet remains untarnished.'}
{'name': "The Set of Gauntlets 'Paurnimmen'", 'description': 'A set of handgear, freezing with unnatural cold.'}
''' ### Part4
# 将多个字典转成字符串要用dump_all,生成yaml文档格式数据
c = yaml.dump_all(b_data_list, default_flow_style=False)
print(c)
with open('document.yaml', 'w') as f:
f.write(c) # 写入 # 解析文件中的数据
with open('document.yaml') as f:
d = yaml.load_all(f.read()) # 读取加载
print(d) # 生成器内存地址
for i in d:
print(i) ### Part5 文档格式有不同表示方法,解析后效果相同
sum = """
a: 1
b:
c: 3
d: 4
"""
print(yaml.dump(yaml.load(sum)))
'''
效果:
a: 1
b: {c: 3, d: 4}
'''
print(yaml.dump(yaml.load(sum), default_flow_style=False))
'''
效果:
a: 1
b:
c: 3
d: 4
'''

  3.pyyaml模块解析文件小实例

apache:
pkg.installed: []
service.running:
- reload: True
- watch:
- file: /etc/httpd/conf/httpd.conf
user.present:
- uid: 87
- gid: 87
- home: /var/www/html
- shell: /bin/nologin
- require:
- group: apache
group.present:
- gid: 87
- require:
- pkg: apache /etc/httpd/conf/httpd.conf:
file.managed:
- source: salt://apache/httpd.conf
- user: root
- group: root
- mode: 644 ---
test:
- hostname
- ipaddr
- port
- operator

yaml文件

# -*- coding:utf-8 -*-
# Author: Wongdu import yaml
import os def host_parser():
path_file = 'host.yaml'
data_list = []
if os.path.isfile(path_file):
with open(path_file) as f:
host_data = yaml.load_all(f.read())
for item in host_data:
data_list.append(item)
if len(data_list) > 1:
data = data_list
else:
data = data_list[0] return data
else:
exit("%s is not a valid yaml config file.." % path_file) data = host_parser()
print(data)

解析yaml文件

pyyaml模块的更多相关文章

  1. Python pyYAML模块

    pyYaml模块 一.pyYAML python也可以很容的处理ymal文档格式,只不过取药安装一个模块. 语法例子 注:主要用来做配置文件. 注:需要下载标准库.

  2. CentOS6.x 下安装Python pyyaml模块

    Python中使用yaml时候,需要安装下组件pyyaml,直接安装pyyaml时提示“ext/_yaml.c:4:20: error: Python.h: No such file or direc ...

  3. Python之pyyaml模块

    pyyaml模块在python中用于处理yaml格式数据,主要使用yaml.safe_dump().yaml.safe_load()函数将python值和yaml格式数据相互转换.当然也存在yaml. ...

  4. Python3学习之路~5.10 PyYAML模块

    Python也可以很容易的处理ymal文档格式,只不过需要安装一个模块,参考文档:http://pyyaml.org/wiki/PyYAMLDocumentation

  5. Python中Pyyaml模块的使用

    一.YAML是什么 YAML是专门用来写配置文件的语言,远比JSON格式方便. YAML语言的设计目标,就是方便人类读写. YAML是一种比XML和JSON更轻的文件格式,也更简单更强大,它可以通过缩 ...

  6. 13.python笔记之pyyaml模块

    Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...

  7. Python自动化运维之10、模块之json、pickle、XML、PyYAML、configparser、shutil

    序列化 Python中用于序列化的两个模块 json     用于[字符串]和 [python基本数据类型] 间进行转换 pickle   用于[python特有的类型] 和 [python基本数据类 ...

  8. Python学习笔记——基础篇【第六周】——PyYAML & configparser模块

    PyYAML模块 Python也可以很容易的处理ymal文档格式,只不过需要安装一个模块,参考文档:http://pyyaml.org/wiki/PyYAMLDocumentation 常用模块之Co ...

  9. Python【pyyaml】模块

    pyyaml模块安装: pip install pyyaml pyyaml导入: import yaml pyyaml使用: 1.使用前,在pycharm中新建一个以yaml或yml结尾的文件,保存为 ...

随机推荐

  1. 助你上手Vue3全家桶之Vue-Router4教程

    目录 1,前言 1,Router 2.1,跳转 2.2,打开新页面 3,Route 4,守卫 4.1,onBeforeRouteLeave 4.2,onBeforeRouteUpdate 4.3,路由 ...

  2. 通过两个位置的经纬度坐标计算距离(C#版本)

    /// <summary> /// 通过地图上的两个坐标计算距离(C#版本) /// Add by 成长的小猪(Jason.Song) on 2017/11/01 /// http://b ...

  3. 『学了就忘』Linux基础 — 17、远程服务器关机及重启时的注意事项

    目录 1.为什么远程服务器不能关机 2.远程服务器重启时需要注意两点 3.不要在服务器访问高峰运行高负载命令 4.远程配置防火墙时不要把自己踢出服务器 5.指定合理的密码规范并定期更新 6.合理分配权 ...

  4. Dubbo之负载均衡、并发控制、延迟暴露、连接控制

    1.并发控制 dubbo服务端和消费端都做了并发控制,分别在配置中有相应的对应配置: 服务端:executes服务提供者每服务每方法最大可并行执行请求数,控制并发数量:actives每服务消费者每服务 ...

  5. Qt 信号与槽的自动关联机制

    前言 对于一些简单的事件判别,如点击按钮.无需写代码关联信号和槽函数. connect(ui->Btnshowhello,SIGNAL(clicked(bool)),this,SLOT(Btns ...

  6. WPF进阶技巧和实战09-事件(1-路由事件、鼠标键盘输入)

    理解路由事件 当有意义的事情发生时,有对象(WPF的元素)发送的用于通知代码的消息,就是事件的核心思想.WPF通过事件路由的概念增强了.NET事件模型.事件由允许源自某个元素的事件由另一个元素引发.例 ...

  7. Python进阶(上下文管理器与with语句)

    /*上下文管理器必须有__enter__和__exit__方法*/ class MyResource: def __enter__(self): print('链接资源') return self / ...

  8. 第三章 sql 的约束

    1.0 约束分类 约束类型: 主键 默认值 唯一 外键 非空 关键字: PRIMARY KEY DEFAULT UNIQUE FOREIGN NOT NULL 2.0 建立含约束的表    3.0 主 ...

  9. 菜鸡的Java笔记 第十三 String 类的两种实例化方法

    String 类的两种实例化方法 String 类的两种实例化方式的区别 String 类对象的比较 Stirng 类对象的使用分析 /*    1.String 类的两种实例化方式的区别       ...

  10. [cf1495D]BFS Trees

    记$d_{G}(x,y)$表示无向图$G$中从$x$到$y$的最短路,设给定的图为$G=(V,E)$,$T$为其生成树,$E_{T}$为$T$的边集 下面,考虑计算$f(x,y)$-- 首先,对于一棵 ...