【Python】YAML(.yml)文件简介以及python示例 - 1

YAML(.yml)文件简介

YAML(YAML Ain’t Markup Language)是一种数据序列化格式,常用于配置文件、数据存储和交换等。它以其可读性和简洁性而著称,是JSON和XML的一种流行替代格式。YAML的设计重点在于易于人类阅读和编写,同时也易于机器解析和生成。

YAML文件的特点

  1. 结构表示

    • 使用缩进来表示层级关系,通常使用空格缩进(不推荐使用制表符)。
    • 不需要使用额外的标记符号如括号或标签。
  2. 数据类型

    • 支持标量(单个的、不可再分的值)、序列(列表)和映射(键值对)。
    • 标量可以是字符串、整数、浮点数、布尔值等。
    • 序列类似于数组或列表,使用短横线 - 开头。
    • 映射类似于字典,使用冒号 : 分隔键和值。
  3. 注释

    • 使用井号 # 开始注释,注释内容持续到行尾。

示例 YAML 文件

# 示例YAML配置文件
database:
  host: localhost
  port: 5432
  username: admin
  password: secret

servers:
  - host: 192.168.1.1
    port: 8080
  - host: 192.168.1.2
    port: 8081

features:
  enable_login: true
  enable_signup: false

这个示例中定义了数据库的连接信息、一组服务器的地址和端口以及某些功能的启用状态。

使用 Python 处理 YAML 文件

要在Python中读取和写入YAML文件,你需要使用一个外部库,如 PyYAML,这是处理YAML数据的一个流行库。首先,需要安装这个库(如果尚未安装):

pip install pyyaml
Python 示例:读取YAML文件
import yaml

# 从YAML文件读取数据
with open('config.yml', 'r') as file:
    config = yaml.safe_load(file)

print(config)

这段代码使用 safe_load() 方法从 config.yml 文件中加载数据。这是一种安全的加载方式,不支持执行YAML中可能存在的任何Python对象创建语法。

Python 示例:写入YAML文件
import yaml

data = {
    'database': {
        'host': 'localhost',
        'port': 5432,
        'username': 'admin',
        'password': 'secret'
    },
    'servers': [
        {'host': '192.168.1.1', 'port': 8080},
        {'host': '192.168.1.2', 'port': 8081}
    ],
    'features': {
        'enable_login': True,
        'enable_signup': False
    }
}

# 将数据写入YAML文件
with open('output_config.yml', 'w') as file:
    yaml.safe_dump(data, file)

这段代码使用 safe_dump() 方法将Python字典写入到 output_config.yml 文件中。与 safe_load() 一样,safe_dump() 也是安全的,不会生成任何潜在危险的YAML标签。

在Python中,使用PyYAML库读取YAML文件后,内容通常会被转换成Python的字典(如果YAML结构是键值对的话)或者列表(如果YAML结构是序列的话)。这意味着你可以使用标准的Python字典或列表操作来访问这些数据。

print(config_my)
print(config_my['database'])
print(config_my['servers'])
print(config_my['servers'][0])
print(config_my['servers'][1])
print(config_my['servers'][1]['host'])
print(config_my['servers'][1]['port'])
print(config_my['features'])
print(config_my['features']['enable_login'])
print(config_my['features']['enable_signup'])

总结

YAML文件因其人类可读的格式而在配置文件和数据序列化场景中广受欢迎。在Python中,通过 PyYAML 库的支持,你可以轻松地处理YAML数据,无论是加载配置、存储数据还是与其他系统交换数据。

Python配置文件通常使用YAML (.yml)格式。YAML是一种人类可读的数据序列化格式,用于表示数据结构和配置。在Python中,可以使用yaml库来解析和读取YAML格式的配置文件。以下是一个示例代码片段,展示了如何读取一个YAML配置文件并打印其中的内容: ```python import os import yaml # 获取yaml文件路径 yamlPath = os.path.join("D:\\test\\", "config.yml") # 打开并读取yaml文件 with open(yamlPath, 'r', encoding='utf-8') as f: cfg = yaml.safe_load(f) # 读取配置文件中的内容 user_name = cfg['user_name'] plan_date = cfg['date'] if 'date' in cfg else '' user_name_list = cfg['user_name_list'] # 打印配置文件中的内容 print(user_name) print(plan_date) for element in user_name_list: print(element.get('user_name')) ``` 以上代码使用yaml库的`safe_load`方法来加载YAML配置文件,并将其转换为Python字典对象。然后,可以通过字典的键来访问配置文件中的不同配置项。在这个例子中,我们将`user_name`、`date`和`user_name_list`的值打印出来。 请注意,你需要根据实际的配置文件路径和键名进行相应的修改。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python解析yml配置文件](https://blog.csdn.net/godloveleo9527/article/details/123046694)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值