import argparse import json import os from tqdm import tqdm def work(fold_path, label): fold_list = os.listdir(fold_path) for fold in fold_list: json_list = os.listdir(fold_path + '/' + fold + '/images') print(fold) for json_path in tqdm(json_list): if json_path.endswith('.json'): file_name = fold_path + '/' + fold + '/images/' + json_path with open(str(file_name), 'r', encoding='utf-8') as fp: json_data = json.load(fp) shape_list = [] for shape in json_data['shapes']: if shape['label'] != label: shape_list.append(shape) fp.close() if len(shape_list) == 0: # print('remove', file_name) os.remove(file_name) os.remove(str(file_name).replace('json', 'jpg')) else: os.remove(file_name) json_data['shapes'] = shape_list # print(file_name) with open(str(file_name), 'w', encoding='utf-8') as fp1: json.dump(json_data, fp1, sort_keys=False, indent=2) fp1.close() if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--fold', type=str, default='./fold') parser.add_argument('--label', type=str, default='Table') args = parser.parse_args() work(args.fold, args.label)