软件系统定制开发Python基础--读取yaml文件

一、软件系统定制开发语法基础知识
1、YAML软件系统定制开发基本语法规则如下:
软件系统定制开发大小写敏感
使用缩进表示层级关系
缩进不允许使用tab,只允许空格
缩进的空格数不重要,只要相同层级的元素左对齐即可

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

3、YAML 对象
对象键值对使用冒号结构表示 key: value,冒号后面要加一个空格。
也可以使用 key:{key1: value1, key2: value2, …}。
还可以使用缩进表示层级关系

使用冒号(:)表示键值对,同一缩进的所有键值对属于一个map,示例:# YAML表示age : 12name : huang # 对应的Json表示{'age':12,'name':'huang'}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

4、YAML 数组
以 - 开头的行表示构成一个数组:

使用连字符(-)表示:# YAML表示- a- b- 12# 对应Json表示['a','b',12]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

5、复合结构
对象和数组可以结合使用,形成复合结构。

languages: - Ruby - Perl - Python websites: YAML: yaml.org  Ruby: ruby-lang.org  Python: python.org  Perl: use.perl.org 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

转为 JavaScript 如下

{ languages: [ 'Ruby', 'Perl', 'Python' ],  websites:    { YAML: 'yaml.org',     Ruby: 'ruby-lang.org',     Python: 'python.org',     Perl: 'use.perl.org' } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

6、纯量
纯量是最基本的,不可再分的值,包括:
字符串
布尔值
整数
浮点数
Null
时间
日期

boolean:     - TRUE  #true,True都可以    - FALSE  #false,False都可以float:    - 3.14    - 6.8523015e+5  #可以使用科学计数法int:    - 123    - 0b1010_0111_0100_1010_1110    #二进制表示null:    nodeName: 'node'    parent: ~  #使用~表示nullstring:    - 哈哈    - 'Hello world'  #可以使用双引号或者单引号包裹特殊字符    - newline      newline2    #字符串可以拆成多行,每一行会被转化成一个空格date:    - 2018-02-17    #日期必须使用ISO 8601格式,即yyyy-MM-dddatetime:     -  2018-02-17T15:02:31+08:00    #时间使用ISO 8601格式,时间和日期之间使用T连接,最后使用+代表时区
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

二、读取YAML文件
思路:先用open方法读取文件数据,再通过load方法转成字典,这个load跟json里面的load是相似的
实战:
yaml 文件(test_yaml.yaml)内容为:

user: adminpwd: 123456
  • 1
  • 2

读取方法:

import yamlimport oscurpath = os.path.dirname(os.path.realpath(__file__))   # 获取当前脚本所在文件夹路径yaml_path = os.path.join(curpath, r"test_yaml.yaml")    # 获取yaml文件路径f = open(yaml_path, "r", encoding="utf-8")      # open方法打开直接读出来cfg = f.read()print(type(cfg))       # 读出来是字符串d = yaml.load(cfg, Loader=yaml.FullLoader)      # 用load方法转字典print(d, type(d))print(d["pwd"])f.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

执行结果为:

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发