python修改yaml文件内容_Python操作Yaml文件
最近开始使用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文件相关推荐
- python修改zip文件内容_python操作zip文件
转自: 需要使用到zipfile模块 读取Zip文件 随便一个zip文件,我这里用了bb.zip,就是一个文件夹bb,里面有个文件aa.txt. import zipfile # 默认模式r,读 az ...
- python替换文件内容_Python实现替换文件中指定内容的方法
本文实例讲述了Python实现替换文件中指定内容的方法.分享给大家供大家参考,具体如下: 这里使用python编写的程序,实现如下功能:将文件中的指定子串 修改为 另外的子串 编写的python程序, ...
- python os读取文件内容_python基础之文件读写
python基础之文件读写 本节内容 os模块中文件以及目录的一些方法 文件的操作 目录的操作 1.os模块中文件以及目录的一些方法 python操作文件以及目录可以使用os模块的一些方法如下: 得到 ...
- python读取xml文件内容_python读取xml文件
关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码.这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python来读取xml文件. 什么是xm ...
- python读压缩文件内容_Python读写压缩文件的方法
问题 你想读写一个gzip或bz2格式的压缩文件. 解决方案 gzip 和bz2模块可以很容易的处理这些文件. 两个模块都为 open()函数提供了另外的实现来解决这个问题. 比如,为了以文本形式读取 ...
- python读取大文件内容_python 读取大文件
readlines.read().readline()等一次性读取遇到很大的文件都可能面临内存崩溃,所以我们将读取操作细化一点 1. read(size) + yield 固定每次读取的长度,使用生成 ...
- python读取大文件内容_python读取大文件
python读取文件对各列进行索引 可以用readlines, 也可以用readline, 如果是大文件一般就用readlined={} a_in = open("testfile.txt& ...
- python查找文件内容_python自定义查找文件内容
#!/usr/bin/env python #coding:utf8 #此脚本为查找递归目录下所有文件匹配的内容 import os,sys,tab def paths(path): list_pat ...
- python修改文件内容_python批量修改文件夹及其子文件夹下的文件内容
前言:前几天我看一位同学要修改很多文件中的数据,该文件数据很规律,一行只有三个数,需要将每行最后一个数字改为负数,但文件有上千个,分布在每个文件夹下面以及它的多级子文件夹下,看他用excel手动改数据 ...
最新文章
- python在windows下操作word的方法的代码
- Matplotlib图例中文乱码
- 1005. 继续(3n+1)猜想 (25)
- SAP Spartacus Focusdirective继承自Lockdirective,静态代码分析
- linux使用ntp时间同步
- Synergy如果timeout的可能原因
- pclint 与vs2010结合识别预处理器定义
- cad怎么画坐标系箭头_CAD中怎么画箭头啊 cad箭头
- 随机过程(基本概念、平稳随机过程)
- xp系统下硬盘安装linux,在NTFS格式硬盘XP下安装LINUX系统
- 滴滴AI负责人叶杰平:你的每一次出行,都已有AI落地的助力
- SDN与OPENFLOW 简介
- 永不过时的优雅 KOREANO ESSENTIAL 2022秋冬系列全新上市
- 尚硅谷nginx学习
- u盘在电脑读不出来,但别的可以读,别的u盘在我电脑又可以识别怎么回事?...
- 人民币升值破七 香港物价上涨发工资改用人民币
- WIN10网络显示DNS服务器可能不可用,Win10系统总是提示DNS解析失败无法上网的解决方法...
- 如何将mp4视频制作成gif表情包
- Ajax之【Ajax异步实现步骤】
- Chrome浏览器自带截长图功能,只需两个快捷键!
热门文章
- 蝙蝠算法的matlab程序,经典蝙蝠算法MATLAB实现
- python字典成绩_Python 字典
- mongodb数据同步到oracle_数据库周刊41丨9月数据库排行榜;2020 数据技术嘉年华…...
- 用小眼睛图标控制手机号脱敏显示
- 【最新实用版】Python批量将pdf文本提取并存储到txt文件中
- 商标注册流程,商标注册材料
- BeanUtils.copyProperties() 赋值的对象属性为空 踩过的大坑
- 公司计算机d盘怎么设置共享,大神教您win7系统共享D盘的解决教程
- 超出MySQL最大连接数解决办法
- 【U8】凭证手工编号或者整理凭证按照凭证日期重排是灰色的