You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按文件名规则分组单页tif文件并拼接对应OCR识别文本

解决方案

你可以按「文件名前缀分组、同组内按页码排序」的逻辑实现文本拼接,完整实现方案如下:

核心逻辑说明

根据你给出的文件名示例,同组文件的核心特征是:去掉末尾_三位数字.tif后缀后的前缀完全一致;单页文件没有末尾的页码段,直接用主文件名作为分组键即可。

完整代码实现

import glob
import re
import os
import pandas as pd
import pytesseract
from PIL import Image

# 匹配末尾页码段和.tif后缀的正则
page_pattern = re.compile(r"(_\d{3})?\.tif$", re.IGNORECASE)

file_info = []
listOfPages = glob.glob(r"C:/Users/name/test/*.tif")

for entry in listOfPages:
    # 提取无路径的纯文件名
    file_name = entry.split("/")[-1]
    # 提取分组键:去掉页码段和.tif后缀
    group_key = page_pattern.sub("", file_name)
    # 提取页码:有_xxx后缀取对应数字,无页码的单页文件默认页码为0
    page_match = re.search(r"_(\d{3})\.tif$", file_name, re.IGNORECASE)
    page_num = int(page_match.group(1)) if page_match else 0
    
    # 执行OCR识别
    text = pytesseract.image_to_string(Image.open(entry), lang="en")
    
    file_info.append({
        "group_key": group_key,
        "page_num": page_num,
        "raw_text": text,
        "file_path": entry
    })

# 转DataFrame后先按分组、再按页码排序
df = pd.DataFrame(file_info).sort_values(by=["group_key", "page_num"])

# 1. 得到拼接后的文本数据集:同组文本按页码顺序拼接,可自定义页分隔符
merged_text_df = df.groupby("group_key")["raw_text"].apply("\n---\n页分隔符\n---\n".join).reset_index()
merged_text_df.columns = ["merge_file_name", "full_text"]

# 2. 可选:生成带原始图像的可检索PDF(比纯文本转PDF效果更好,符合你的原始需求)
pdf_folder = r"C:/Users/name/test/pdf_folder"
os.makedirs(pdf_folder, exist_ok=True)

for group_key, group_data in df.groupby("group_key"):
    # 按页码排序取所有同组文件
    sorted_files = group_data.sort_values("page_num")["file_path"].tolist()
    # 拼接所有页的PDF二进制内容(自带OCR文本层)
    full_pdf = b""
    for f in sorted_files:
        full_pdf += pytesseract.image_to_pdf_or_hocr(Image.open(f), lang="en", extension="pdf")
    # 保存合并后的PDF
    with open(os.path.join(pdf_folder, f"{group_key}.pdf"), "wb") as f:
        f.write(full_pdf)

结果说明

  • merged_text_df中每行对应一个合并后的文件,merge_file_name就是你需要的目标文件名,full_text是同组所有页按顺序拼接后的完整文本
  • 可选的PDF生成逻辑直接在原始图像上叠加OCR文本层,既保留了原始文件内容,又支持全文检索,完全符合需求。

内容的提问来源于stack exchange,提问作者id345678

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 07:36:00