python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python创建yaml文件

python中创建和修改yaml文件的方法

作者:程序员阿明

YAML 是 "YAML Ain’t a Markup Language"的递归缩写,yaml简洁美观,是一种常用的标记语言,可以用来表达多种数据结构和配置文件,本文给大家介绍python中如何创建和修改yaml文件,感兴趣的朋友一起看看吧

python中如何创建和修改yaml文件

1、创建yaml

import os
import yaml
desired_caps = {
                'train': 'dataTrain/2007_train.txt',
                'val': 'dataTrain/2007_val.txt',
                'nc': 2,
                'names': ['a','b']
                }
curpath = os.path.dirname(os.path.realpath(__file__))
yamlpath = os.path.join(curpath, "./yamlFile/caps.yaml")
# 写入到yaml文件
with open(yamlpath, "w", encoding="utf-8") as f:
    yaml.dump(desired_caps, f)

2、修改yaml文件

import os
import yaml
def set_state(state):
    file_name = "./yamlFile/bottlemldel.yaml"
    with open(file_name) as f:
        doc = yaml.safe_load(f)
    doc['nc'] = state
    with open(file_name, 'w') as f:
        yaml.safe_dump(doc, f, default_flow_style=False)
set_state(8)

补充:

python如何修改yaml文件

YAML简介

YAML 是 "YAML Ain’t a Markup Language"的递归缩写。开发的这种语言时其意思其实是:“Yet Another Markup Language”。yaml简洁美观,是一种常用的标记语言,可以用来表达多种数据结构和配置文件。

那么如何创建和修改yaml语言呢

YAML修改

1.首先需要安装工具包ruamel.yaml

pip install ruamel.yaml

2.然后读取yaml文件进行修改。

下面给出一个例子:对dependencies中的每一个字符串成员,删除最后一个等号及其后面的内容

from ruamel.yaml import YAML
yaml = YAML()
# 读取yaml文件
with open("environment.yaml", "r", encoding='utf-8') as file:
    data = yaml.load(file)
# 修改yaml文件
datas = data["dependencies"]
for index in range(len(datas)):
    curStr = datas[index]
    # 删除最后一个等号及其后面的内容
    if isinstance(curStr, str) and curStr.count("=") > 1:
        # 从右边开始以"="为分界分割一次
        strs = datas[index].rsplit("=", 1)
        datas[index] = strs[0]
        print(datas[index])
# 保存yaml文件
with open("environment.yaml", "w", encoding='utf-8') as file:
    yaml.dump(data, file)

修改前:

修改后:

到此这篇关于python中如何创建和修改yaml文件的文章就介绍到这了,更多相关python创建yaml文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文