当前位置 博文首页 > python 中yaml文件用法大全

    python 中yaml文件用法大全

    作者:梁先森-python数据分 时间:2021-08-04 18:17

    yaml简单介绍

    YAML是一种标记语言,它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲。

    • 大小写敏感
    • 使用缩进表示层级关系
    • 缩进不允许使用tab,只允许空格
    • 缩进的空格数不重要,只要相同层级的元素左对齐即可
    • '#'表示注释

    yaml数组

    yaml语音数组很简单,使用短横线 ‘-' 作为数组的开始标志。

    一维数组

    import yaml
    #三个双引号的作用是字符换行不需要加换行符
    y = """
    - 111
    - 222
    - 333
    """
    # y等同于y1
    y1 = '- 111\n- 222\n- 333'
    config = yaml.safe_load(y)
    config

    out: [111, 222, 333]

    二维数组

    二维数组就是按照缩进关系来的,更多维数组道理相同,具体看下面的代码:

    import yaml
    y = """
    -
      - 111
      - 222
      - 333
    -
      - 111
      - 222
      - 333
    """
    config = yaml.safe_load(y)
    config

    out : [[111, 222, 333], [111, 222, 333]]

    yaml字典

    简单字典形式

    yaml字典的模式是Key: value 形式,中间使用冒号+空格进行连接

    import yaml
    y = """
    '0': 1
    '1': 2
    '2': 3
    """
    config = yaml.safe_load(y)
    config

    out: {‘0': 1, ‘1': 2, ‘2': 3}

    复杂字典形式

    下面的例子中,我们使用一个嵌套字典,就是字典里面的value值又是一个字典

    import yaml
    y1 = """
    object1:
      'key1': 0
      'key2': 1
    object2:
      'key1': 0
      'key2': 1  
    """
    config = yaml.safe_load(y1)
    config

    out: {‘object1': {‘key1': 0, ‘key2': 1}, ‘object2': {‘key1': 0, ‘key2': 1}}

    yaml 复杂结构 数组里面嵌入字典

    import yaml
    y1 = """
    -
      'key1': 0
      'key2': 1
    -
      'key1': 0
      'key2': 1
    """
    config = yaml.safe_load(y1)
    config

    out: [{‘key1': 0, ‘key2': 1}, {‘key1': 0, ‘key2': 1}]

    字典里面嵌入数组

    import yaml
    y1 = """
    object1:
      - 111
      - 222
    object2:
      - 111
      - 222
    """
    config = yaml.safe_load(y1)
    config

    out : {‘object1': [111, 222], ‘object2': [111, 222]}

    yaml读取和写入

    YAML.yml文件内容:

    image-20210703183540378

    # yaml文件读取
    import yaml
    with open('YAML.yml','r')as f:
        config = yaml.safe_load(f)
    config

    out:[0, 111, 222]

    # yaml写入文件
    config = [1,2,3]
    with open('YAML1.yml','w')as f:
        yaml.dump(config,f)

    YAML1.yml文件内容:

    image-20210703183433312

    资料参考:

     YAML菜鸟教程

    总结

    yaml文件是项目配置常用的配置文件,通常我们会将超参数和一些常用值放在配置文件中,方便修改,读取也十分的方便。

    jsjbwy
    下一篇:没有了