HWDB1.1 gnt转化为gnt后数据不全

最近在学习pytorch,在做一个手写体汉字识别的demo,用到的数据集时HWDB1.1tst_gnt和HWDB1.1trn_gnt。原始数据集经过解压后,将.gnt转化为.png文件,在转化过程中发现断断续续会有一些图片丢失,不知道问题出现在哪里?
附上转化代码

# coding=utf-8
import struct
import os
from PIL import Image

DATA_PATH = "D:/Dataset/HWDB/HWDB1.1tst_gnt/HWDB1.1trn_gnt"  # gnt数据文件路径
IMG_PATH = "../data/test"  # 解析后的图片存放路径
# print("start")
files = os.listdir(DATA_PATH)
num = 0
for file in files:
    tag = []
    img_bytes = []
    img_wid = []
    img_hei = []
    f = open(DATA_PATH + "/" + file, "rb")
    while f.read(4):
        tag_code = f.read(2)
        tag.append(tag_code)
        width = struct.unpack('<h', bytes(f.read(2)))
        height = struct.unpack('<h', bytes(f.read(2)))
        img_hei.append(height[0])
        img_wid.append(width[0])
        data = f.read(width[0] * height[0])
        img_bytes.append(data)
    f.close()
    for k in range(0, len(tag)):
        im = Image.frombytes('L', (img_wid[k], img_hei[k]), img_bytes[k])
        if os.path.exists(IMG_PATH + "/" + tag[k].decode('gbk')):
            im.save(IMG_PATH + "/" + tag[k].decode('gbk') + "/" + str(num) + ".png")
        else:
            os.mkdir(IMG_PATH + "/" + tag[k].decode('gbk'))
            im.save(IMG_PATH + "/" + tag[k].decode('gbk') + "/" + str(num) + ".png")
    num = num + 1
print(tag.__len__())
print("successful!")
# files = os.listdir(IMG_PATH)
# n = 0
# f = open("label.txt", "w")  # 创建用于训练的标签文件
# for file in files:
#     files_d = os.listdir(IMG_PATH + "/" + file)
#     for file1 in files_d:
#         f.write(file + "/" + file1 + " " + str(n) + "\n")
#     n = n + 1

这是转化测试集的代码,测试集图片的总数量应该是60*3375=202500,但经过脚本统计发现总数为223716,部分缺失记录如下图:

img

这个问题出现在哪里?请问该如何解决?