最近开始使用Python3.x,所有今后无特殊说明,Python代表的就是Python3.x

最近在看代码时发现有人用Yaml —— Yet Another Markup Language :另一种标记语言

好奇,就拿来试试。希望后续的项目中可以尝试实践一下。

简介

编程免不了要写配置文件,怎么写配置也是一门学问。

YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。

YAML在python语言中有PyYAML安装包。

YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格式。

它的基本语法规则如下:

1、大小写敏感

2、使用缩进表示层级关系

3、缩进时不允许使用Tab键,只允许使用空格。

4、缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

5、# 表示注释,从这个字符一直到行尾,都会被解析器忽略,这个和python的注释一样

YAML 支持的数据结构有三种:

1、对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)

2、数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)

3、纯量(scalars):单个的、不可再分的值。字符串、布尔值、整数、浮点数、Null、时间、日期

1. 安装包

pip install pyyaml

2. 使用yaml

apiVersion: apps/v1

kind: Deployment

metadata:

name: linux-node02

namespace: yaml-demo

spec:

replicas:1selector:

matchLabels:

app: podinfo

template:

metadata:

labels:

app: podinfo

spec:

containers:- image: quay.io/stefanprodan/podinfo:0.3.0

name: podinfod

ports:- containerPort: 9898

3. 获取配置文件信息

importyamlimportos#获取当前路径

filePath = os.path.dirname(__file__)print(filePath)#获取当前文件的绝对路径

fileNamePath = os.path.split(os.path.realpath(__file__))[0]print(fileNamePath)#获取配置文件的路径

yamlPath = os.path.join(fileNamePath,'config.yaml')print(yamlPath)#修改yaml配置

with open(yamlPath,'r',encoding='utf-8') as f:#print(f.read())

result =f.read()

x= yaml.load(result,Loader=yaml.FullLoader)print(type(x))print(x)

C:\Users\yulianhui\AppData\Local\Programs\Python\Python36\python.exe D:/dev/PYSCRIPTS/yaml配置文件/s1.py

D:/dev/PYSCRIPTS/yaml配置文件

D:\dev\PYSCRIPTS\yaml配置文件

D:\dev\PYSCRIPTS\yaml配置文件\config.yaml{'apiVersion': 'apps/v1', 'kind': 'Deployment', 'metadata': {'name': 'linux-node02', 'namespace': 'yaml-demo'}, 'spec': {'replicas': 1, 'selector': {'matchLabels': {'app': 'podinfo'}}, 'template': {'metadata': {'labels': {'app': 'podinfo'}}, 'spec': {'containers': [{'image': 'quay.io/stefanprodan/podinfo:0.3.0', 'name': 'podinfod', 'ports': [{'containerPort': 9898}]}]}}}}

4. 修改配置参数

importyamlimportos#获取当前路径

filePath = os.path.dirname(__file__)print(filePath)#获取当前文件的绝对路径

fileNamePath = os.path.split(os.path.realpath(__file__))[0]print(fileNamePath)#获取配置文件的路径

yamlPath = os.path.join(fileNamePath,'config.yaml')print(yamlPath)#修改yaml配置

with open(yamlPath,'r',encoding='utf-8') as f:#print(f.read())

result =f.read()

x= yaml.load(result,Loader=yaml.FullLoader)print(type(x))print(x)print(x['metadata']['name'])#修改的值

x['metadata']['name'] = 'linux-node02'

print(x)

with open(yamlPath,'w',encoding='utf-8') as w_f:#覆盖原先的配置文件

yaml.dump(x,w_f)

python修改yaml文件内容_Python操作Yaml文件相关推荐

  1. python修改zip文件内容_python操作zip文件

    转自: 需要使用到zipfile模块 读取Zip文件 随便一个zip文件,我这里用了bb.zip,就是一个文件夹bb,里面有个文件aa.txt. import zipfile # 默认模式r,读 az ...

  2. python替换文件内容_Python实现替换文件中指定内容的方法

    本文实例讲述了Python实现替换文件中指定内容的方法.分享给大家供大家参考,具体如下: 这里使用python编写的程序,实现如下功能:将文件中的指定子串 修改为 另外的子串 编写的python程序, ...

  3. python os读取文件内容_python基础之文件读写

    python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...

  4. python读取xml文件内容_python读取xml文件

    关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码.这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python来读取xml文件. 什么是xm ...

  5. python读压缩文件内容_Python读写压缩文件的方法

    问题 你想读写一个gzip或bz2格式的压缩文件. 解决方案 gzip 和bz2模块可以很容易的处理这些文件. 两个模块都为 open()函数提供了另外的实现来解决这个问题. 比如,为了以文本形式读取 ...

  6. python读取大文件内容_python 读取大文件

    readlines.read().readline()等一次性读取遇到很大的文件都可能面临内存崩溃,所以我们将读取操作细化一点 1. read(size) + yield 固定每次读取的长度,使用生成 ...

  7. python读取大文件内容_python读取大文件

    python读取文件对各列进行索引 可以用readlines, 也可以用readline, 如果是大文件一般就用readlined={} a_in = open("testfile.txt& ...

  8. python查找文件内容_python自定义查找文件内容

    #!/usr/bin/env python #coding:utf8 #此脚本为查找递归目录下所有文件匹配的内容 import os,sys,tab def paths(path): list_pat ...

  9. python修改文件内容_python批量修改文件夹及其子文件夹下的文件内容

    前言:前几天我看一位同学要修改很多文件中的数据,该文件数据很规律,一行只有三个数,需要将每行最后一个数字改为负数,但文件有上千个,分布在每个文件夹下面以及它的多级子文件夹下,看他用excel手动改数据 ...

最新文章

  1. python在windows下操作word的方法的代码
  2. Matplotlib图例中文乱码
  3. 1005. 继续(3n+1)猜想 (25)
  4. SAP Spartacus Focusdirective继承自Lockdirective,静态代码分析
  5. linux使用ntp时间同步
  6. Synergy如果timeout的可能原因
  7. pclint 与vs2010结合识别预处理器定义
  8. cad怎么画坐标系箭头_CAD中怎么画箭头啊 cad箭头
  9. 随机过程(基本概念、平稳随机过程)
  10. xp系统下硬盘安装linux,在NTFS格式硬盘XP下安装LINUX系统
  11. 滴滴AI负责人叶杰平:你的每一次出行,都已有AI落地的助力
  12. SDN与OPENFLOW 简介
  13. 永不过时的优雅 KOREANO ESSENTIAL 2022秋冬系列全新上市
  14. 尚硅谷nginx学习
  15. u盘在电脑读不出来,但别的可以读,别的u盘在我电脑又可以识别怎么回事?...
  16. 人民币升值破七 香港物价上涨发工资改用人民币
  17. WIN10网络显示DNS服务器可能不可用,Win10系统总是提示DNS解析失败无法上网的解决方法...
  18. 如何将mp4视频制作成gif表情包
  19. Ajax之【Ajax异步实现步骤】
  20. Chrome浏览器自带截长图功能,只需两个快捷键!

热门文章

  1. 蝙蝠算法的matlab程序,经典蝙蝠算法MATLAB实现
  2. python字典成绩_Python 字典
  3. mongodb数据同步到oracle_数据库周刊41丨9月数据库排行榜;2020 数据技术嘉年华…...
  4. 用小眼睛图标控制手机号脱敏显示
  5. 【最新实用版】Python批量将pdf文本提取并存储到txt文件中
  6. 商标注册流程,商标注册材料
  7. BeanUtils.copyProperties() 赋值的对象属性为空 踩过的大坑
  8. 公司计算机d盘怎么设置共享,大神教您win7系统共享D盘的解决教程
  9. 超出MySQL最大连接数解决办法
  10. 【U8】凭证手工编号或者整理凭证按照凭证日期重排是灰色的