记录一个Yaml.dump的问题

使用Python3 将yaml文件里的内容分割按字段成一个个yml文件

首先当然是使用 pyyaml
然后我们肯定是遍历所有的yaml文件,判断内容是否有这个字段。然后提取出来
存储进一个个yaml文件里面。
以下的伪代码

# 遍历目录下所有文件
def dir_files(file_path):
    file_lst = []
    for file_path, sub_dirs, filenames in os.walk(file_path):
        if filenames:
            # 如果是文件,则加append到list中
            for filename in filenames:
                file_lst.append(os.path.join(file_path, filename))
        for sub_dir in sub_dirs:
            # 如果是目录,则递归调用该函数
            dir_files(sub_dir)
    return file_lst
def creat_yaml(file_path):
    for i in dir_files(file_path):
        with open(i,'r', encoding='utf-8') as f:
            cont = f.read()
            d = yaml.load(cont)
            for k in range(len(d)):
                if 'test' in d[k]:
                    fileName = d[k]['test']['name']
                    fileContent = yaml.safe_dump(d[k]['test'], allow_unicode=True)
                    with open(fileName + '.yml', 'w+', encoding='utf-8') as file:
                        file.write(fileContent)

这里有个坑
我之前没加allow_unicode=True 导致中文转换成unicode
看了文档以及百度了一波,解决了。所以记录这个问题。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容