这段Python脚本是一个用于统计快递选框项目中特定标签数量的工具,适用于从大量JSON标注文件中统计甲方结算所需的框数量,具体功能如下:
1. 导入模块
导入了 os 模块用于操作系统交互, json 模块用于解析JSON文件, defaultdict 用于处理默认值字典,以及 tkinter 及其相关子模块用于创建图形用户界面(GUI)。
2. 定义统计单个JSON文件中标签数量的函数
count_labels_in_json 函数接收一个JSON文件路径作为参数。它尝试打开并读取该JSON文件,检查文件中是否存在 shapes 字段。如果存在,遍历其中的每个形状(shape),提取其 label 属性,并使用 defaultdict 统计每个标签出现的次数。若文件解析失败或处理过程中出错,会打印相应的错误信息。
3. 定义统计目录中所有JSON文件标签数量的函数
count_labels_in_directory 函数接收一个目录路径作为参数。它会遍历该目录及其子目录下的所有文件,筛选出扩展名为 .json 的文件。对于每个JSON文件,调用 count_labels_in_json 函数统计其中的标签数量。然后,分别统计标签为 package 和 people 的出现次数,并返回这两个标签的总计数。
4. 定义按钮点击事件处理函数
on_button_click 函数通过弹出对话框让用户输入要统计的目录路径。如果用户输入了路径,就调用 count_labels_in_directory 函数统计该目录下的 package 和 people 标签数量,并将统计结果拼接成字符串。最后,通过消息框显示统计结果。
5. 创建GUI界面
使用 tkinter 创建一个简单的图形用户界面窗口,设置窗口标题为“350M标签
点击空白处退出提示












评论