在进行深度学习时,使用labelme标注工具标注了一系列图像,结果是json格式,每个Json文件需要在标注环境下执行一句shell命令来解析。
于是乎想到用shell脚本方法写个循环。首先先用文本建立一个.sh的文件,然后如下:
这个脚本的作用就是遍历文件夹里所有.json文件,首先要判断后缀是不是.json,然后读取文件名,命名新的字符串,然后执行一句shell命令$cmd。这句命令行里面拼接了自定义的字符串,使得xxx.json文件解析为一个xxx_json的文件夹。这大大缩减了工作量!
#!/bin/bash
echo "Now begin to search json file..."
for file in ./*
do
if [ "${file##*.}"x = "json"x ]
then
filename=`basename $file`
temp_filename=`basename $file .json`
suf=_json
new_filename=${temp_filename}${suf}
# echo $new_filename
cmd="labelme_json_to_dataset ${filename} -o ${new_filename}"
eval $cmd
fi
# printf "no!\n "
done
亲测可行。
本脚本也可以用于其他情况如判断后缀、遍历文件、做其他操作等等,提供参考框架。注意sh文件我是放在和json的同一文件夹下。
关于labelme:https://github.com/wkentaro/labelme