支持多种语言:python、js、golang、java、c、c++

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

它的基本语法规则如下。

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

# 表示注释,从这个字符一直到行尾,都会被解析器忽略。

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

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

安装插件:

pip install pyyaml

PyYAML文档:https://pyyaml.org/

https://pyyaml.org/wiki/PyYAMLDocumentation

yaml配置文件结构

网上搜搜吧,很多

python操作yaml文件:

https://www.cnblogs.com/BlueSkyyj/p/8143826.html

读取配置:

import yaml
import os # 获取当前文件路径 D:/WorkSpace/StudyPractice/Python_Yaml/YamlStudy
filePath = os.path.dirname(__file__)
print(filePath)
# 获取当前文件的Realpath D:\WorkSpace\StudyPractice\Python_Yaml\YamlStudy\YamlDemo.py
fileNamePath = os.path.split(os.path.realpath(__file__))[]
print(fileNamePath)
# 获取配置文件的路径 D:/WorkSpace/StudyPractice/Python_Yaml/YamlStudy\config.yaml
yamlPath = os.path.join(fileNamePath,'config.yaml')
print(yamlPath)
# 加上 ,encoding='utf-8',处理配置文件中含中文出现乱码的情况。
f = open(yamlPath,'r',encoding='utf-8') cont = f.read() x = yaml.load(cont)
print(type(x))
print(x)
print(x['EMAIL'])
print(type(x['EMAIL']))
print(x['EMAIL']['Smtp_Server'])
print(type(x['EMAIL']['Smtp_Server']))
print(x['DB'])
print(x['DB']['host']) print(x.get('DB').get('host')) print(type(x.get('DB')))

写入配置

# 写入yaml 文件
# a 追加写入,w,覆盖写入
fw = open(yamlPath,'a',encoding='utf-8')
# 构建数据
data = {"cookie1":{'domain': '.yiyao.cc', 'expiry': 1521558688.480118, 'httpOnly': False, 'name': '_ui_', 'path': '/', 'secure': False, 'value': 'HSX9fJjjCIImOJoPUkv/QA=='}}
# 装载数据
yaml.dump(data,fw)
# 读取数据,获取文件
f = open(yamlPath,'r',encoding='utf-8')
# 读取文件
cont = f.read()
# 加载数据
x = yaml.load(cont)
# 打印数据
print(x)
# 打印读取写入的数据
print(x.get("cookie1"))

参考:

https://yaml.org/

http://www.ruanyifeng.com/blog/2016/07/yaml.html

python读取yaml配置文件的更多相关文章

  1. python的logging模块之读取yaml配置文件。

    python的logging模块是用来记录应用程序的日志的.关于logging模块的介绍,我这里不赘述,请参见其他资料.这里主要讲讲如何来读取yaml配置文件进行定制化的日志输出. python要读取 ...

  2. Python读取Yaml文件

    近期看到好多使用Yaml文件做为配置文件或者数据文件的工程,随即也研究了下,发现Yaml有几个优点:可读性好.和脚本语言的交互性好(确实非常好).使用实现语言的数据类型.有一个一致的数据模型.易于实现 ...

  3. python 读取yaml文件

    简介 在实际开发过程中,我们可能需要读取一些配置文件的配置信息,例如ini.yaml.property等格式,本文将讲述怎么去获取和设置yaml文件的相关参数. 示例yaml文件 test1: tes ...

  4. 使用python读取yaml文件

    在做APP测试时,通常需要把参数存到一个字典变量中,这时可以将参数写入yaml文件中,再读取出来. 新建yaml文件(android_caps.yaml),文件内容为: platformName: A ...

  5. Python 读取写入配置文件 —— ConfigParser

    Python 读取写入配置文件 —— ConfigParser Python 读取写入配置文件很方便,可使用内置的 configparser 模块:可查看源码,如博主本机地址: “C:/python2 ...

  6. python读取yaml文件,在unittest中使用

    python读取yaml文件使用,有两种方式: 1.使用ddt读取 2,使用方法读取ddt的内容,在使用方法中进行调用 1.使用ddt读取 @ddt.ddt class loginTestPage(u ...

  7. python读取ini配置文件的示例代码(仅供参考)

    这篇文章主要介绍了python读取ini配置文件过程示范,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 安装 pip install configp ...

  8. Python读取ini配置文件(接口自动测试必备)

    前言 大家应该接触过.ini格式的配置文件.配置文件就是把一些配置相关信息提取出去来进行单独管理,如果以后有变动只需改配置文件,无需修改代码. 特别是后续做自动化的测试,代码和数据分享,进行管理.比如 ...

  9. 基于python的yaml配置文件使用方法

    一.介绍 YAML是一种简洁的非标记语言 YAML以数据为中心,使用空白.缩进.分行组织数据,从而使表达更加简洁易懂 二.基本规则 大小写敏感 使用缩进表示层级关系 禁止使用Tab缩进,只能使用空格键 ...

随机推荐

  1. homestead 无法被局域网其他电脑局域网访问解决办法

    修改(该文件就是通过git下载的homestead文件夹中的文件) homestead/scripts/homestead.rb   # Configure A Private Network IP ...

  2. hibernate Validator 6.X 的学习,bean的约束(字段,get方法上的验证)

    一:背景说明 验证数据是一个常见的任务,它贯穿于所有应用层,从呈现到持久层.通常在每个层中都执行相同的验证逻辑,耗时且容易出错.为了避免这些验证的重复,开发商往往把验证逻辑直接进入的领域模型,在领域类 ...

  3. 005.FTP本地用户访问

    一 新建本地用户 [root@imxhy ftp]# useradd ftpuser #用于登陆ftp的用户 [root@imxhy ftp]# passwd ftpuser Changing pas ...

  4. 利用transform的bug使fixed相对于父级定位

    首先,大家都清楚,元素使用fixed之后,若不设置top与left则会相对于最近的使用定位的父元素,并位于父元素的原点位置设置top与left值时,则会相对于窗口定位.但无论如何,此时仍相对于窗口定位 ...

  5. 命令:install

    简介 从命令的名字上来看,会让人误以为这是一个和安装相关的命令. 其实不然,install命令用于复制文件(cp)或创建空目录(mkdir)并设置相关的属性(chown.chmod). 这里的属性包含 ...

  6. ApiPost的环境变量的定义和使用「ApiPost环境变量」

    新版的ApiPost(Chrome拓展V2.0.8+/客户端V2.2.1+)已经支持环境变量的定义和使用. 本文主要介绍ApiPost环境变量的第一课:如何定义环境变量,并如何使用它. ApiPost ...

  7. [lisp] scheme环境搭建与编译运行

    搭建环境参考这篇 http://leochin.com/mac-scheme-install/ 用文本编辑器写代码 保存文件格式为 .scm 在终端中cd到scm文件所在文件夹, 执行  (cf &q ...

  8. 开发人员如何正确对待BUG?

    ‌1.前端开发与后端开发 出了问题,最重要的是先找到方法迅速解决,而不是去互相指责.前端存在这样的思维模式,后端也存在这样的思维模式,这种思维模式不太好.出了问题,最好先检查一下自己,反省是不是自己这 ...

  9. 用yum安装JDK

    用yum安装JDK 1.查看yum库中都有哪些jdk版本(暂时只发现了openjdk) [root@localhost ~]# yum search java|grep jdkldapjdk-java ...

  10. KNN与SVM对比&SVM与逻辑回归的对比

    首先说一下两种学习方式: lazy learning  和  eager learning. 先说 eager learning, 这种学习方式是指在进行某种判断(例如,确定一个点的分类或者回归中确定 ...