Crossin的编程教室

能上人民日报的Python代码长啥样?

‍入门教程、案例源码、学习资料、读者群

请访问: python666.cn

大家好,欢迎来到 Crossin的编程教室 !

最近ChatGPT真是太火了,无论你在哪个媒体上都会看到关于它的新闻。ChatGPT是一种基于大语言模型的生成式AI,可以自动生成类似人类语言的文本,把梳理好的有逻辑的答案呈现在你面前。除了能聊天、写论文、创作诗歌,ChatGPT还可以帮助我们编写Python代码。

不得不感慨一下,未来真的可以实现“智能”工作了!其实除了智能还不够,我们的工作很多还是重复性的,那么就不得不用Python去解决这个问题了!

Image

那么就跟大家聊一个去年这个时候的例子吧。大家也知道去年这个时候还是口罩时期,当时有个新闻特别火!【核酸报告核查太繁琐?这位复旦人写了130行代码搞定】,后来又被人民日报转发,当做抗疫中的创新小事迹宣传。简而言之,复旦大学需要开展全员核酸检测,而班级辅导员都要收集学生的“健康云”截图,并挨着查看是否参加核酸。这位复旦同学通过Python编程,利用OCR+正则表达式提取截图中的关键字导出结果到Excel中,解决了这个麻烦的手动问题。

Image
交流群里的评价

我自己非常乐意看到Python出圈,也特别开心看到Python能够解决生活工作中的问题。这本来是个典型的Python自动化办公案例,结果分别上了微博、知乎后引发了大量的讨论。很多评论/回答表示“这也能吹?没有新闻可以不发”。

Image

我看了复旦的原文,其中媒体对技术实现描述的段落确实有点尬,不过这位博士同学能够发现痛点解决痛点真的很赞!

Python实战复刻

作为Python爱好者,我第一时间还是想着复刻一遍这位复旦博士Python代码,后面再聊聊我的看法。原文中所说的程序思路为OCR文字识别+正则表达式筛选,再结合大家截图估计大小不统一(无法ocr特定位置的文字)的情况,那大概思路就get了。

Image

Python思路:ocr提取全部文字,并全部拼接为字符串,再正则表达式提取关键词,最后导出到Excel中。

Image

常用的Python中文ocr方法,要么使用PaddleOCR库要么干脆直接使用百度的api接口。PaddleOCR是一个超棒的OCR工具库,之前我们还用它写了一个图像文字识别OCR程序,但是大家安装时往往会遇到各种坑,所以并不是很建议。百度api呢,之前我也曾经分享过OCR识别快递单的案例,那就不如直接拿来用吧。

在交互式环境中输入如下命令:

def get_words_result(filePath):
    image = open(filePath, 'rb')
    text_list = client.general(image.read())
    texts = ""
    for i in range(25):
        texts += text_list['words_result'][i]['words']
    image.close()
    return texts

get_words_result("D:/下载/健康云/张三.jpg")

输出:

'04:491l5G2结果查询本查询服务由上海市卫生健康委员会提供姓名张三证件类型身份证证件号码3101******2495样本编码3303806213采样时间2022-04-0211:36:32检测机构上海市徐汇区疾病预防控制中心检测时间2022-04-03检测项目核酸检测结果待复核姓名证件类型身份证'

如下图所示,由于我们只需要其中的“姓名”、“采样时间”、“检测结果”等,那么便使用正则表达式从上述代码输出结果中提取关键文本。

Image

在交互式环境中输入如下命令:

import re
re.findall(r'姓名(.*?)证件类型', data_ll)[0]

输出:

'张三'

同理可以得到其他几项待提取文本信息。至于如何批量识别图片,使用os.listdir()+for循环即可,具体可以参考我近期分享过的《Python识别花卉种类,并自动整理分类!》。

import os
filenames = os.listdir("./截图")
filenames

输出:

['张3-截图.jpg', '李四-截图.jpg']

如果想将最后执行结果导出到Excel中,可以直接Pandas导出,若想保持一定表格格式则可以选用openpyxl模块。

df.to_excel('./结果.xlsx', index=False, encoding='utf-8-sig')

输出结果如下图所示。

Image

由于篇幅所限,这里就不贴全部Python代码了,如果感兴趣,后台回复“核酸”即可获得完整代码和测试截图。学会了这个,类似的需求都能做了!

本文作者 朱小五,大家如果对代码有疑问,也可以直接找他讨论。

对了,小五老师的新书《快学Python--自动化办公轻松实战》正在5折活动中。这是一本真正从国内实际工作情况出发,用Python解决各种办公问题,提升工作效率的好书!

Image

本书精选30+办公案例、10+实战项目,不仅教大家学Python,并且每学习一个知识点便附带对应的案例。同时,书中针对每个案例还进行了详细的步骤“拆分”,手把手教会大家怎么解决实际问题。

你会发现每看完本书的一个章节后,都可以直接拿来处理工作中遇到的问题。

本书有配套的完整代码、作者录制的重点学习视频、随书附赠的其他资料包,以及Python自动化办公学习路线图。

Image

现在京东4.23读书日活动中,优惠基础上还可叠加满300减100的满减券,识别下方海报中的二维码即可领券购买。

Image

人生苦短,快学Python!希望大家学习Python并能将其应用到自己的生活工作中!

感谢转发和点赞的各位~

_往期文章推荐_

荐一波编程书单

如需了解付费精品课程及教学答疑服务
请在Crossin的编程教室内回复: 666

Image