遍历文件夹,批量将yml文件转成json文件,label预处理

#################################################
"""
Author: wangjiazhou
Date: 2022/03/03
Function: covert yml file to json file in a folder
Notes: 将一个文件夹中的所有yml文件转化成同名的json文件,并存入设置好的json文件夹中。
"""
#################################################

import os
import json
import yaml


def yml2json(yml_path, json_path):
    for root, dirs, files in os.walk(yml_path):
        # root 表示当前正在访问的文件夹路径
        # dirs 表示该文件夹下的子目录名list
        # files 表示该文件夹下的文件list
        for idx, file_name in enumerate(files):
            if file_name.find(".yml") != -1:  # 只寻找yml格式文件
                yml_file_path = yml_path + file_name
                with open(yml_file_path, 'r') as yaml_file:
                    if 0:  # 是否需要删除第一行(碰见因第一行是%YAML时使用)
                        with open(yml_file_path, 'r') as file:
                            lines = file.readlines()
                        with open(yml_file_path, 'w') as file:
                            file.writelines(lines[1:])
                    if 1:
                        yaml_data = yaml.load(yaml_file, yaml.Loader)
                        # 转换为JSON格式
                        json_data = json.dumps(yaml_data)
                        file_name = file_name.split(".")[0]  # 去除掉后缀
                        json_file_path = json_path + file_name + ".json"
                        with open(json_file_path, 'w') as f:
                            f.write(json_data)
                        print(idx+1, end="")
                        print("  yml file converted")

    print(yml_file_path, end="")
    print("  all files done!")


if __name__ == '__main__':
    yml_path = "E:\\dataset\\annotations\\"  # 存放yml标注文件的文件夹位置
    json_path = "E:\\dataset\\annotations_json\\"  # 预计存放json格式标注文件的文件夹位置

    yml2json(yml_path, json_path)

如果标注文件是yaml或者yml格式时,可以参考这个代码转换成json格式。只需要改动yml_path(yml文件所在位置)与json_path(新建一个文件夹)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

擅长划水的小汪同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值