Python基于百度OCR的疫情防控截图自动分析检查

通过腾讯文档收集人员信息,下载后,使用Python基于百度OCR对填报的疫情防控截图信息进行识别和统计分析,5分钟搞定每天人工1小时的检查工作量,提高效率,还提高准确率。


前言

疫情期间,各地、各单位、各企业均在执行常态化管控,目前大多采用人工收集相关人员的基本信息、健康码、行程码、核酸报告的截图,再通过人工分析人工检查去核实相关的信息,效率不高。通过信息化工具的优化处理流程是1、通过腾讯文档建立表单;2、下载表格至本地电脑;3、筛选表格日期并下载截图处理,插入EXCEL表格;4、将图片发送百度云的文字识别处理;5、通过正则表达式或re.findall、re.search等,将识别结果中的日期、健康码颜色、行程涉及的城市、核酸报告日期提取出来;5、判断相关数据是否正常,不正常的标注为红色;6、将结果输出到本地EXCEL文件;7、将EXCEL发送至QQ邮箱保存。


一、腾讯文档建立信息收集表单

1、表单如下:可以自定义编辑需要的收集表单

2、信息收集后会自动形成汇总表单信息,包含用户昵称、提交日期、姓名、日期、行程码链接、健康码链接、核酸报告链接信息等。

二、处理步骤

1.子函数--表格筛选处理

1、在程序中设置表格默认的下载位置和名称

2、单独建立一个子文件excel_set2_yesterday.py,建立预处理的函数preterment(),根据B列中的提交日期和时间进行筛选,本文以检查昨日的截图信息。

import os
import datetime
import openpyxl

def pretrement():
    today = datetime.date.today()  #获取当天的日期
    oneday = datetime.timedelta(days=1)
    yesterday = today-oneday  #h获取昨天的日期
    print(yesterday)

    #设置表格下载的默认位置和名称
    path = "C:\\Users\\Administrator\\Downloads"
    file_path = path + "\\疫情升级管理期间承包商人员信息统计表(收集结果).xlsx"
    print(file_path)
    wb = openpyxl.load_workbook(file_path)
    ws = wb["疫情升级管理期间承包商人员信息统计表"]
    rows = ws.max_row  #获取表格的最大行数
    print(rows)
    j = 0
    if os.path.exists(file_path) is not True:#判断hs1.xlsx是否存大
        os._exit(0)
    else:
        for i in range(rows, 1, -1):  # 必须倒序删除,正序下面的会往上面自动走,容易删不完整
            iccid = ws["B" + str(i)].value
            if iccid is not None:
                jkmdate = iccid.strftime('%Y-%m-%d')#提取B列单元格内容中的日期信息
                print(jkmdate)
                yesterday1=yesterday.strftime('%Y-%m-%d')
                print(yesterday1)
                if jkmdate==yesterday1: #判断单元格的日期是否是昨天的日期
                    pass
                else:
                    ws["B" + str(i)].value = "错" #如果日期不符,将单元格填充为“错”的中文
            else:
                ws.delete_rows(i)  #如果是单元格是空的,则将整行删除

    wb.save('hs2_today.xlsx')   #将处理后的表格输出为hs2_today.xlsx

2.子函数--图片压缩

因为下载的原图比较大,大量图片黏贴到EXCEL,会导至表格很大,因此建立子程序compress_image.py,并设置压缩函数需要将图片压缩。

from PIL import Image

def compress_image1(infile, outfile='', mb=100, step=10, quality=80):
    """不改变图片尺寸压缩到指定大小
    :param infile: 压缩源文件
    :param outfile: 压缩文件保存地址
    :param mb: 压缩目标,KB
    :param step: 每次调整的压缩比率
    :param quality: 初始压缩比率
    :return: 压缩文件地址,压缩文件大小
    """
    o_size = get_size(infile)
    print(o_size)
    if o_size <= mb:
        return infile
    outfile = get_outfile(infile, outfile)
    while o_size > mb:
        im &
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_26255097

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值