用Python+OCR工具Tesseract实现档案数字化 快速提升日常经营管理决策效率

一、准备工作:安装所有必需工具

1.1 安装Python环境

首先确保电脑上有Python 3.8以上版本(3.9-3.11最稳定),检查方式:打开Windows cmd或Mac/Linux终端,输入python --version(Mac/Linux部分系统用python3 --version)。

若未安装,直接访问Python官方下载页获取对应系统安装包:https://www.python.org/downloads/,安装时务必勾选“Add Python to PATH”(Windows系统),Mac/Linux用系统包管理器(Homebrew、apt-get等)也可,这里以官方包为例。

1.2 安装Tesseract OCR引擎

这是识别文字的核心:

  • Windows:下载Tesseract 5.x安装包(含中文简体包,否则只识别英文),地址是https://github.com/UB-Mannheim/tesseract/wiki,安装路径默认即可,安装后将C:\Program Files\Tesseract-OCR(如果是64位可能是Program Files (x86),自己检查)添加到系统环境变量PATH中,步骤:右键此电脑→属性→高级系统设置→环境变量→系统变量里找PATH→编辑→新建→粘贴路径→确定三次。
  • Mac:打开终端,先安装Homebrew(如果没有的话):/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)",然后用brew安装Tesseract和简体中文语言包:brew install tesseract tesseract-lang
  • Linux(以Ubuntu/Debian为例)sudo apt update && sudo apt install tesseract-ocr tesseract-ocr-chi-sim

1.3 安装Python依赖库

打开终端,依次输入并执行以下两条命令(都用国内镜像源避免卡顿):

  • 安装图片处理库Pillow:pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 安装Python调用Tesseract的库pytesseract:pip install pytesseract -i https://pypi.tuna.tsinghua.edu.cn/simple

二、第一步:单页纸质档案/扫描件转可编辑文本

这个是基础,先解决单份文件的识别,避免批量出错找不到问题。

2.1 准备测试档案

找一张清晰的A4纸打印的财务报表、销售记录或会议纪要扫描件/手机翻拍件(翻拍时尽量正对、光线均匀、无阴影、边缘对齐,这样识别率95%以上),保存为test.jpg/test.png,放在D盘(Mac/Linux放在桌面)新建的archive_demo文件夹里。

2.2 编写单页识别脚本

在archive_demo文件夹里新建一个记事本,粘贴以下完整代码,保存为single_ocr.py(Windows要把文件类型改成“所有文件”,否则变成.txt):

```python import pytesseract from PIL import Image Windows用户如果没有把Tesseract加到PATH,这里要手动指定路径(比如下面这行取消注释) pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' 打开测试图片 img = Image.open('test.jpg') 如果是test.png直接改文件名 识别文字,chi_sim是简体中文,eng是英文,混合识别用chi_sim+eng text = pytesseract.image_to_string(img, lang='chi_sim+eng') 保存识别结果到同目录的single_result.txt with open('single_result.txt', 'w', encoding='utf-8') as f: f.write(text) print('单页识别完成!结果已保存到single_result.txt') ```

2.3 运行脚本并验证

用Python+OCR工具Tesseract实现档案数字化 快速提升日常经营管理决策效率

在archive_demo文件夹里右键空白处打开终端(Windows是按住Shift+右键→在此处打开PowerShell/命令窗口),输入python single_ocr.py(Mac/Linux用python3 single_ocr.py),运行后打开single_result.txt,核对文字是否正确。

三、第二步:批量档案数字化(按文件夹自动处理)

单页没问题后,处理一整个文件夹的档案,自动分类到子文件夹里,避免混乱。

3.1 整理批量档案

在archive_demo里再建两个文件夹:input_archives(放所有待处理的扫描件/手机图,支持jpg、jpeg、png、bmp格式)、output_texts(自动生成的可编辑文本会放在这里,文件名和原图片一致)。

3.2 编写批量识别脚本

同样新建记事本,粘贴以下完整代码,保存为batch_ocr.py

```python import pytesseract from PIL import Image import os Windows用户手动指定Tesseract路径的话,取消下面这行的注释 pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' 定义输入输出路径 input_dir = 'input_archives' output_dir = 'output_texts' 确保输出文件夹存在,不存在就自动创建 os.makedirs(output_dir, exist_ok=True) 遍历输入文件夹里的所有图片文件 for filename in os.listdir(input_dir): 判断是否是支持的图片格式 if filename.lower().endswith(('.jpg', '.jpeg', '.png', '.bmp')): try: 打开图片 img_path = os.path.join(input_dir, filename) img = Image.open(img_path) 识别文字 text = pytesseract.image_to_string(img, lang='chi_sim+eng') 生成输出文本文件名(把原后缀改成.txt) txt_filename = os.path.splitext(filename)[0] + '.txt' txt_path = os.path.join(output_dir, txt_filename) 保存结果 with open(txt_path, 'w', encoding='utf-8') as f: f.write(text) print(f'✅ 已处理:{filename}') except Exception as e: print(f'❌ 处理失败:{filename},错误原因:{str(e)}') print('批量处理结束!请查看output_texts文件夹') ```

3.3 处理批量档案

把待处理的图片全部拖进input_archives,打开终端运行python batch_ocr.py,等待处理完成即可。

四、第三步:快速提取关键决策数据(以财务利润表为例)

档案转成文本后,我们可以用Python简单筛选数据,不用翻几十页找利润、销售额这类核心指标,直接生成决策用的汇总表。

4.1 准备待筛选的文本规则

这里假设我们的档案是连续三个月的利润表扫描件,已经批量转成output_texts里的txt文件,每个txt里有“营业收入”、“营业利润”、“净利润”三个关键指标,后面跟着具体的数字(单位万元)。

4.2 编写关键数据提取脚本

新建记事本,粘贴以下完整代码,保存为extract_data.py

```python import os import re 定义输出路径 output_texts_dir = 'output_texts' summary_file = 'decision_summary.csv' CSV可以直接用Excel打开 确保输出路径没问题 os.makedirs(os.path.dirname(summary_file) if os.path.dirname(summary_file) else '.', exist_ok=True) 定义提取规则的正则表达式(匹配“指标名:数字”或“指标名 数字”的格式,数字可以有逗号或小数点) pattern = re.compile(r'(营业收入|营业利润|净利润)\s[::]?\s([-+]?\d{1,3}(?:,\d{3})(?:\.\d+)?)') 打开汇总表准备写入 with open(summary_file, 'w', encoding='utf-8-sig') as f: utf-8-sig是为了Excel打开不乱码 写入表头 f.write('文件名,营业收入(万元),营业利润(万元),净利润(万元)\n') 遍历所有文本文件 for filename in os.listdir(output_texts_dir): if filename.lower().endswith('.txt'): txt_path = os.path.join(output_texts_dir, filename) with open(txt_path, 'r', encoding='utf-8') as f_txt: content = f_txt.read() 提取三个指标,默认值留空 data = { '营业收入': '', '营业利润': '', '净利润': '' } matches = pattern.findall(content) for key, value in matches: if key in data: data[key] = value.replace(',', '') 去掉数字里的逗号,方便Excel计算 写入一行数据 f.write(f'{filename},{data["营业收入"]},{data["营业利润"]},{data["净利润"]}\n') print(f'✅ 已提取数据:{filename}') print('数据提取结束!请用Excel打开decision_summary.csv') ```

4.3 验证提取结果

运行python extract_data.py,然后用Excel打开decision_summary.csv,就能看到整理好的、可以直接求和或做折线图的决策数据了。

五、卡壳排查

  • 提示找不到Tesseract:Windows检查是否加了PATH,加了的话重启终端/电脑;Mac/Linux检查是否正确安装了语言包。
  • 识别率低:先处理图片,用Pillow加一段代码把图片转成灰度、提高对比度,例如在打开img后加:img = img.convert('L') 转灰度img = img.point(lambda x: 0 if x < 128 else 255, '1') 二值化(可选,根据图片效果调整128这个阈值)
  • 提取不到数据:检查正则表达式里的指标名是否和txt里的完全一致,比如有没有空格、冒号是中文还是英文,修改pattern里的内容即可。
AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统