Python

Python:批量将 Json 文件的1个字段读入 txt 文件

2018-07-27  本文已影响35人  谢小帅

使用 labelme 标注图片生成的 json 文件

现在想提取 shapes 字段中的多边形顶点坐标,存入 txt 文件

批量转化

import json
import os
from glob import glob


def custombasename(fullname):
    return os.path.basename(os.path.splitext(fullname)[0])


IN_PATH = 'C:/Users/Shuai/Desktop/US_mid/labelJson'
OUT_PATH = 'C:/Users/Shuai/Desktop/US_mid/labelTxt'

file_list = glob(IN_PATH + '/*.json')

for i in range(len(file_list)):
    with open(file_list[i]) as f:
        label_str = f.read()
        label_dict = json.loads(label_str)  # json文件读入dict

        # 输出 txt 文件的路径
        out_file = OUT_PATH + '/' + custombasename(file_list[i]) + '.txt'

        # 写入 poly 四点坐标 和 label
        fout = open(out_file, 'w')
        out_str = ''
        for shape_dict in label_dict['shapes']:
            points = shape_dict['points']
            for p in points:
                out_str += (str(p[0]) + ' ' + str(p[1]) + ' ')
            out_str += shape_dict['label'] + ' 0\n'
        fout.write(out_str)
        fout.close()
    print('%d/%d' % (i + 1, len(file_list)))
上一篇下一篇

猜你喜欢

热点阅读