#################################################
"""
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 (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 = ()
with open(yml_file_path, 'w') as file:
(lines[1:])
if 1:
yaml_data = (yaml_file, )
# 转换为JSON格式
json_data = (yaml_data)
file_name = file_name.split(".")[0] # 去除掉后缀
json_file_path = json_path + file_name + ".json"
with open(json_file_path, 'w') as f:
(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)