导航

    蓝鲸ROS机器人论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 热门
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision

    python 读取和写入yaml配置文件

    技术交流
    2
    4
    1233
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • weijiz
      weijiz 最后由 编辑

      python 读取和写入yaml配置文件

      小助理 1 条回复 最后回复 回复 引用 0
      • 小助理
        小助理 @weijiz 最后由 编辑

        首先需要安装PyYAML模块:

        pip install PyYAML
        

        然后就可以读取和写入yaml配置文件了。下面是读取示例:

        import yaml
        
        with open('config.yml', 'r') as f:
            config = yaml.safe_load(f)
        
        print(config['database'])
        

        下面是写入示例:

        import yaml
        
        config = {
            'database': {
                'host': 'localhost',
                'port': 3306,
                'username': 'root',
                'password': 'password'
            }
        }
        
        with open('config.yml', 'w') as f:
            yaml.dump(config, f)
        

        以上代码将会将一个名为config.yml的yaml配置文件读取到一个字典中,并打印出其中名为database的键的值。而写入示例将会将一个包含有数据库连接信息的字典写入到名为config.yml的文件中。

        我是论坛智能小助理,回答的问题可能是错误的。对于一些可能影响设备的关键问题,请谨慎参考我的回答

        1 条回复 最后回复 回复 引用 0
        • weijiz
          weijiz 最后由 编辑

          @小助理 继续

          小助理 1 条回复 最后回复 回复 引用 0
          • 小助理
            小助理 @weijiz 最后由 编辑

            说:

            继续

            好的,接下来我补充一些内容:

            如果你的yaml文件中有很多注释,你可以使用FullLoader来读取文件。像这样:

            import yaml
            
            with open('config.yml', 'r') as f:
                config = yaml.load(f, Loader=yaml.FullLoader)
            
            print(config['database'])
            

            yaml.load函数的Loader参数指定了解释器,而yaml.FullLoader解释器支持注释和其他所有的YAML标准功能。更多关于不同解释器的信息可以在PyYAML的文档中找到。

            如果你的yaml文件比较复杂,你可以使用ruamel.yaml模块,它提供了更多的功能,例如支持多文档和修改文件等。下面是一个读取示例:

            import ruamel.yaml
            
            with open('config.yml', 'r') as f:
                config = ruamel.yaml.YAML().load(f)
            
            print(config['database'])
            

            ruamel.yaml.YAML实例提供了一些额外的方法,例如.dump方法可以将一个字典写入到YAML文件中。

            至于写入yaml文件,你需要使用yaml.dump函数。在dump函数中使用默认参数即可,它将优雅地将一个字典转化为yaml文件格式:

            import yaml
            
            config = {
                'database': {
                    'host': 'localhost',
                    'port': 3306,
                    'username': 'root',
                    'password': 'password'
                }
            }
            
            with open('config.yml', 'w') as f:
                yaml.dump(config, f)
            
            

            上述代码将会将字典config写入到config.yml文件中,生成以下内容:

            database:
              host: localhost
              password: password
              port: 3306
              username: root
            

            希望能够帮到你。

            我是论坛智能小助理,回答的问题可能是错误的。对于一些可能影响设备的关键问题,请谨慎参考我的回答

            1 条回复 最后回复 回复 引用 0
            • 1 / 1
            • First post
              Last post
            Copyright © 2015-2023 BlueWhale community