溪客(编程代码) 溪客(编程代码)

  • 今天是2025年08月20日 Wednesday
  • 首页
  • 知识
  • 网址
  • AI助手

Python

首页 / 知识 / Python
  • 基础
    • Conda
    • Jupyter
    • dump
    • CSharp2Python
    • 关于模块导入
    • 关于推导式
    • 关于元组
    • set和数组的区别
    • 关于Literal
    • 关于iter
    • 关于setup.py
    • 路径拼接
    • 方法命名约定
  • 库
    • 其他
    • argparse命令行参数解析
    • asyncio自带异步编程库
    • aiofiles异步文件读写库
    • beautifulsoup4_HTML_XML解析库
    • colorama_在终端输出漂亮的字
    • datasets数据集处理
    • html2text
    • httpx_HTTP请求库
    • litellm
    • loguru日志库
    • numpy科学计算基础库
    • pillow图像处理
    • pydantic数据验证
    • pyyaml
    • requests_HTTP请求库
    • tenacity重试
    • tiktoken计算Token量
    • torch机器学习_深度学习框架
    • tomli TOML文件解析库
    • tomllib 自带TOML文件解析库
    • unidiff_文本_文件差异对比
    • uvicorn_Web服务器
  • langchain
    • langchain-chatchat
    • langchain-qianfan
**PyYAML** 是 Python 的一个第三方库,用于解析和生成 **YAML 格式** 的文件或数据。 --- ### 一、YAML 是什么? - **YAML(YAML Ain't Markup Language)** 是一种人类可读的数据序列化格式,常用于配置文件、数据交换等。 - 它比 JSON 更易读,支持注释、多行字符串等特性,广泛用于: - 项目的配置文件(如 `config.yaml`) - DevOps / CI/CD 工具(如 Kubernetes、Ansible) - 机器学习项目中的参数配置 - 各种需要结构化数据又希望易读易写的场景 --- ### 二、PyYAML 是什么? - **PyYAML 是 Python 处理 YAML 的标准库之一**(虽然不是 Python 内置,但非常流行)。 - 它让你可以在 Python 中: - **加载(parse)YAML 文件/字符串 → 转为 Python 对象(如字典、列表)** - **将 Python 对象(如字典、列表)→ 导出为 YAML 格式(保存为文件或字符串)** --- ### 三、PyYAML 常见用途 1. **读取 YAML 配置文件** 2. **将程序配置保存为 YAML 格式** 3. **与 JSON 类似,但更可读,用于数据交换** 4. **在机器学习/深度学习项目中管理超参数(如 `params.yaml`)** 5. **与 Docker Compose、Kubernetes、Ansible 等工具配合使用** --- ### 四、安装方法 使用 pip 安装: ```bash pip install pyyaml ``` --- ### 五、简单示例 #### 1. 读取 YAML 文件/字符串 ```python import yaml # 示例 YAML 字符串 yaml_str = """ name: 张三 age: 25 skills: - Python - 机器学习 """ # 解析 YAML -> Python 字典 data = yaml.safe_load(yaml_str) print(data) ``` **输出:** ```python {'name': '张三', 'age': 25, 'skills': ['Python', '机器学习']} ``` #### 2. 写入 YAML 文件 ```python import yaml data = { 'name': '李四', 'age': 30, 'skills': ['Java', '深度学习'] } # 保存为 YAML 文件 with open('person.yaml', 'w', encoding='utf-8') as f: yaml.dump(data, f, allow_unicode=True, default_flow_style=False) ``` 生成的 `person.yaml` 文件内容类似: ```yaml age: 30 name: 李四 skills: - Java - 深度学习 ``` --- ### 六、注意安全:推荐使用 `yaml.safe_load` - 不要使用 `yaml.load()` 加载不受信任的 YAML 文件,可能有安全风险(比如代码执行)。 - 推荐始终使用:**`yaml.safe_load()`** 来安全地解析 YAML。 --- ### 七、总结(中文) **PyYAML 是 Python 中用于处理 YAML 格式数据的库,支持将 YAML 文件或字符串与 Python 的字典、列表等数据结构互相转换。** 它常用于读取配置文件、保存结构化参数、与 DevOps 工具交互等场景,是 Python 开发中非常实用的工具之一。
© 2022 - 溪客(编程代码) - 粤ICP备10217501号 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)