当前位置:

首页 > 编程开发 > Python读写YAML文件全攻略

Python读写YAML文件全攻略

Python中操作YAML文件常用PyYAML库实现。1.安装方法为执行pipinstallpyyaml;2.读取使用yaml.safe_load()函数加载文件,注意处理编码、路径和语法错误;3.写入使用yaml.dump()函数保存数据,需设置allow_unicode=True、sort_keys=False等参数控制输出格式;4.处理复杂结构时应逐层访问并判断字段是否存在,结合异常处理可提升代码健壮性。掌握安装、读取、写入及结构处理技巧后即可高效操作YAML配置文件。

本文目录

    Python中操作YAML文件常用PyYAML库实现。1. 安装方法为执行pip install pyyaml;2. 读取使用yaml.safe_load()函数加载文件,注意处理编码、路径和语法错误;3. 写入使用yaml.dump()函数保存数据,需设置allow_unicode=True、sort_keys=False等参数控制输出格式;4. 处理复杂结构时应逐层访问并判断字段是否存在,结合异常处理可提升代码健壮性。掌握安装、读取、写入及结构处理技巧后即可高效操作YAML配置文件。

    Python中如何操作YAML文件?配置读写方法详解

    在Python中操作YAML文件其实挺常见的,特别是在处理配置文件的时候。YAML的结构清晰、可读性强,很多项目用它来代替JSON或者INI格式的配置。要实现读写YAML文件,最常用的是PyYAML库,下面我从实际使用角度讲讲怎么操作。

    Python中如何操作YAML文件?配置读写方法详解

    安装PyYAML库

    Python标准库不包含YAML的支持,所以首先要安装第三方库:

    pip install pyyaml

    这个库支持基本的数据类型如字典、列表、字符串、布尔值等的转换,基本上能满足大多数配置场景的需求。

    Python中如何操作YAML文件?配置读写方法详解

    读取YAML文件

    读取YAML文件是使用最多的功能之一。比如你有一个名为config.yaml的配置文件,内容如下:

    database:
      host: localhost
      port: 5432
      user: admin
      password: secret
    logging:
      level: debug
      file: /var/log/app.log

    你可以用以下代码读取它:

    Python中如何操作YAML文件?配置读写方法详解
    import yaml
    
    with open('config.yaml', 'r', encoding='utf-8') as f:
        config = yaml.safe_load(f)
    
    print(config['database']['host'])  # 输出: localhost
    • 使用 safe_load() 是推荐的方式,可以避免执行任意代码的风险。
    • 如果你不确定文件是否存在,最好加个异常处理,比如捕获 FileNotFoundError 或 YAMLError。

    常见问题:

    • 编码错误:记得加上 encoding='utf-8'
    • 文件路径错误:建议用绝对路径或确保相对路径正确
    • YAML语法错误:缩进不对会导致解析失败

    写入YAML文件

    有时候你也需要把Python中的数据保存为YAML格式。比如你想生成一个默认配置:

    data = {
        'app': {
            'name': 'my_app',
            'version': '1.0'
        },
        'features': ['login', 'export', 'notifications']
    }
    
    with open('output.yaml', 'w', encoding='utf-8') as f:
        yaml.dump(data, f, allow_unicode=True, sort_keys=False)

    这样会生成一个类似下面的YAML文件:

    app:
      name: my_app
      version: '1.0'
    features:
    - login
    - export
    - notifications

    注意几个参数:

    • allow_unicode=True:支持中文等非ASCII字符
    • sort_keys=False:保持键的顺序,否则默认会按字母排序

    如果你希望输出更美观,还可以加上 default_flow_style=False,让列表显示成换行形式。


    处理复杂数据结构的小技巧

    虽然大部分时候都是处理字典和列表,但有时也会遇到嵌套较深的情况。比如:

    users:
      - name: Alice
        roles: [admin, user]
      - name: Bob
        roles: [user]

    对应的Python结构是一个字典嵌套列表再嵌套字典。访问时要注意层级:

    for user in config['users']:
        print(user['name'], user['roles'])

    这时候容易出错的地方在于字段是否缺失。建议在访问前做判断:

    if 'roles' in user:
        ...

    或者用 .get() 方法设置默认值:

    roles = user.get('roles', [])

    基本上就这些了。读写YAML文件本身不难,但容易忽略细节,比如缩进、编码、异常处理等。只要掌握好这几个关键点,用起来还是很顺手的。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 YAML
    相关文章 更多
    XML和YAML的使用方法
    XML和YAML的使用方法

    YAML相比XML具有可读性强、与脚本语言交互好、语法简洁等优势,通过空格和缩进实现结构,适合配置文件场景。XML侧重于数据存储与传输,标签要求严格成对且区分大小写。YAML继承XML优点,并以更敏捷方式完成相同任务。

    Go语言快速处理YAML配置方法
    Go语言快速处理YAML配置方法

    如何用Go语言处理YAML配置文件?1.选择合适的库:推荐gopkg.in/yaml.v2或sigs.k8s.io/yaml,前者更轻量,后者适合复杂结构;2.定义Go结构体:将YAML结构映射到Go结构体,如使用yaml:"字段名"标签;3.读取和解析YAML:通过ioutil.ReadFile读取文件,yaml.Unmarshal解析内容;4.修改YAML(可选):修改结构体后用yaml.Marshal序列化并写回文件;5.处理环境变量:使用os.ExpandEnv结合正则表达式替换${VAR}为实际

    深入了解Docker Compose技术
    深入了解Docker Compose技术

    DockerCompose是一款工具,用于定义和管理由多个Docker容器组成的应用程序。通过简单的YAML文件描述应用程序的服务、网络、卷等配置,然后使用一个命令来构建、部署和管理整个应用程序。DockerCompose的主要目的是简化容器化应用程序的部署过程,使开发人员能够更轻松地管理复杂的应用程序架构。使用DockerCompose,开发人员可以轻松地定义不同容器之间的关系和依赖关系,从而更有效地管理整个应用程序的生命周期。此工具还提供了一种简单而灵活的方法来将多个容器组合在一起,形成一个完整的应用

    在ThinkPHP6中使用YAML配置文件
    在ThinkPHP6中使用YAML配置文件

    随着现代应用程序的越来越复杂,配置管理变得越来越困难。不同的组件拥有大量的配置选项,而随着代码库的增长,管理这些配置选项变得越来越困难。幸运的是,现代PHP框架提供了各种配置选项来简化这一过程。其中之一就是YAML配置文件。在ThinkPHP6框架中,您可以使用YAML配置文件来管理应用程序配置选项。YAML是一种轻量级的数据序列化语言,它具有易读的语法,支

    SpringBoot解析怎么指定Yaml配置文件
    SpringBoot解析怎么指定Yaml配置文件

    1、自定义配置文件在resources下创建my.yaml文件,“-”用来表示数组类型,一定要注意空格。my:contents:-id:12121name:nadasd-id:3333name:vfffff2、配置对象类创建配置类对象,在类上添加@Component、@PropertySource、@ConfigurationProperties注解。@Component是将该类交由spring管理,@PropertySource用来指定配置文件及解析Yaml格式,@ConfigurationProper

    Springboot-yaml配置和自动配置的原理分析
    Springboot-yaml配置和自动配置的原理分析

    版本仲裁中心springdependencies中帮我们依赖了很多常用的jar包,导入这些jar包不需要版本号如:org.apache.commonscommons-lang3自动配置原理配置文件配置debug:true可以在控制台打印自动配置报告.可以打印所有的启动的自动配置和没有启动的自动配置类.@SpringBootApplication标注在某个类上,说明这个类是springboot的主启动类.@Target({ElementType.TYPE})@Retention(RetentionPolic

    GitHub六个AI开源项目能做什么?软件理解、语音与求职场景
    GitHub六个AI开源项目能做什么?软件理解、语音与求职场景

    解析六个GitHub AI开源项目的具体用途,包括软件静态分析、智能体回答检查、多语言配音、求职材料生成、本地代码检索及动态歌词展示,帮助开发者根据实际需求筛选工具并正确验证结果。

    opencode安装skills教程及本地配置方法
    opencode安装skills教程及本地配置方法

    遇到OpenCode Skills无法加载或配置无效?本文手把手教你完成Skills的安装、环境变量设置及本地调试,避开常见坑点,让AI助手更懂你的代码习惯。

    如何开启Visual Studio2022实时代码分析警告提示
    如何开启Visual Studio2022实时代码分析警告提示

    解决 Visual Studio 2022 编辑时不显示代码分析警告的问题。指南涵盖 .NET 项目实时分析设置、Roslyn 分析器范围调整及错误列表来源筛选,确保开发者能高效利用实时代码诊断功能。

    如何在Visual Studio2022查看变量监视窗口调试程序
    如何在Visual Studio2022查看变量监视窗口调试程序

    详解 Visual Studio 2022 调试技巧:包括断点设置、监视窗口开启方法、变量添加步骤以及通过 F10 单步执行观察变量值变化的全过程。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。