6

实战案例!Python批量识别银行卡号码并且写入Excel,小白也可以轻松使用~

 1 year ago
source link: https://blog.51cto.com/u_15493782/6024057
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
实战案例!Python批量识别银行卡号码并且写入Excel,小白也可以轻松使用~_银行卡

大家好,这里是程序员晚枫,

今天我们继续学习Python自动化办公:每次有新员工入职,都要收集大量的工资卡信息,并且生成Excel文档,能不能用Python准确、快速地解决呢?

今天我们就来学习一下,如何用1行代码,自动识别银行卡信息并且自动生成Excel文件~

实战案例!Python批量识别银行卡号码并且写入Excel,小白也可以轻松使用~_文字识别_02

第一步:识别一张银行卡

识别银行卡的代码最简单,只需要1行腾讯云AI的第三方库potencent的代码,如下所示。左右滑动,查看全部。👇

# pip install potencent
import potencent

# 可以填写本地图片的地址:img_path,也可以填写在线图片的地址:img_url
# 如果2个都填,则只用在线图片
res = potencent.ocr.BankCardOCR(
            img_path=r'C:\Users\程序员晚枫的文件夹\银行卡图片',
            img_url='https://python-office-1300615378.cos.ap-chongqing.myqcloud.com/2-free-group.jpg',
            configPath=r'配置文件的信息,可以不填,默认是同级目录下的potencent-config.toml')

print(res)

识别后的返回结果,几乎涵盖所有银行卡上肉眼可见的内容。👇

{
  "CardNo": "621700888888888889",
  "BankInfo": "建设银行(01050000)",
  "ValidDate": "08/2026",
  "CardType": "借记卡",
  "CardName": "龙卡通",
  "RequestId": "86b70007-3ef5-4b7e-8685-556b0a7df1c9"
}

支持对中国大陆主流银行卡正反面关键字段的检测与识别,包括卡号、卡类型、卡名字、银行信息、有效期。支持竖排异形卡识别、多角度旋转图片识别。支持对复印件、翻拍件、边框遮挡的银行卡进行告警,可应用于各种银行卡信息有效性校验场景,如金融行业身份认证、第三方支付绑卡等场景。

以上代码中,关于potencent-config.toml的配置方法,可以参考昨天视频的讲解👇

第二步:写入Excel

想把上面这个代码用来识别大量银行卡信息,并且将识别后的返回数据,全部写入Excel文件。

代码如下👇。

import os
from os.path import join
import pandas as pd

# home_path = "你存放大量银行卡图片的位置"
home_path = r"C:\Users\Lenovo\Desktop\temp\test\card"
res_df = pd.DataFrame()
for (root, dirs, files) in os.walk(home_path):
    for file in files:
        single_res = potencent.ocr.BankCardOCR(img_path=join(root, file))
        single_res = json.loads(single_res.to_json_string())
        line_df = pd.DataFrame(single_res, index=[0])
        print(line_df)
        res_df = res_df.append(other=line_df)
print(res_df)
res_df.to_excel(r"./银行卡信息(程序员晚枫).xlsx")

运行后的结果如下,会在同级目录下,生成一个Excel文件
实战案例!Python批量识别银行卡号码并且写入Excel,小白也可以轻松使用~_ocr_03

第三步:优化思路

以上代码还可以进一步优化,例如:

  • 路径处理改为Path方法,适配更多的平台
  • 变量名称更简洁
  • index改为序号

但优化的前提是程序能运行成功,赶紧去跑起来吧~


大家在阅读本文和使用代码中有任何问题,欢迎在评论区进行交流~


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK