import os
import json
from tqdm import tqdm
# 设置输入和输出目录
input_dir = ""
output_dir = ""
if not os.path.exists(output_dir):
os.makedirs(output_dir)
json_files = [f for f in os.listdir(input_dir) if f.endswith(".json")]
for filename in tqdm(json_files, desc="Processing files", unit="file"):
input_file_path = os.path.join(input_dir, filename)
output_file_path = os.path.join(output_dir, filename)
with open(input_file_path, 'r') as input_file:
data = json.load(input_file)
bbox_data = {"bbox": data.get("bbox", [])}
with open(output_file_path, 'w') as output_file:
json.dump(bbox_data, output_file)
print("done")
这段代码用于从一组JSON文件中提取bounding box(边界框)信息,并将其保存到新的JSON文件中。代码首先定义了输入和输出目录的路径,并确保输出目录存在。它使用os模块和json模块来读取和解析JSON文件,使用tqdm模块来显示处理进度条。接下来,代码逐个遍历JSON文件,打开并解析JSON文件中的数据,并提取bbox数据。如果bbox数据不存在,则填充空列表。最后,将bbox数据写入新的JSON文件,并在处理完成后输出消息。这段代码并没有为每个JSON文件都创建新的文件名。输出文件名与输入文件名相同。因此,输出文件将替换输入文件。