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

Python调用pytesseract批量提取图片文本报FileNotFoundError求助

问题根因

当前报错是路径拼接错误直接触发的,另外代码中还有两处隐藏逻辑问题会导致功能不符合预期:

  • 直接用字符串拼接文件夹路径和文件名时,你定义的path_to_images末尾没有带路径分隔符\,最终生成的路径变成了C:\Users\vIBRancy\Desktop\quantic_trust _file\imagesIMG_0096.jpeg,文件夹名images和文件名直接连在了一起,系统找不到对应文件就抛出了FileNotFoundError。
  • 写入识别结果时使用了'w'模式打开文件,每次循环都会清空文件原有内容,最终输出文件只会保留最后一张图片的识别结果,无法实现多图文本汇总的需求。
  • 调用os.walk遍历目录时没有使用返回的root参数拼接路径,一旦images文件夹下存在子目录,子目录内的文件路径会拼接错误。
修复方案

不要手动用字符串拼接路径,使用Python标准库os.path.join()方法处理路径拼接,该方法会自动适配不同操作系统的路径分隔符,不需要手动处理斜杠问题;同时调整文件写入逻辑、增加非图片文件过滤,避免后续触发其他异常。

修复后的可运行代码:

from PIL import Image
from pytesseract import pytesseract
import os

# 配置tesseract程序路径
path_to_tesseract = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
# 配置图片存储根目录
path_to_images = r'C:\Users\vIBRancy\Desktop\quantic_trust _file\images'

pytesseract.tesseract_cmd = path_to_tesseract
# 支持的图片格式后缀
valid_img_suffix = ('.png', '.jpg', '.jpeg', '.bmp', '.tiff')

# 循环外打开结果文件,避免每次写入覆盖之前内容,指定utf-8编码避免特殊字符写入报错
with open('quantictrustfiles.txt', 'w', encoding='utf-8') as f:
    for root, _, file_names in os.walk(path_to_images):
        for file_name in file_names:
            # 跳过非图片文件
            if not file_name.lower().endswith(valid_img_suffix):
                continue
            # 安全拼接完整图片路径
            img_path = os.path.join(root, file_name)
            img = Image.open(img_path)
            # 识别图片文本
            text = pytesseract.image_to_string(img, lang='eng')
            # 写入结果,增加分隔符区分不同图片的内容
            f.write(f"===== {file_name} 识别结果 =====\n")
            f.write(text + "\n\n")
            # 控制台打印进度
            print(f"已完成{file_name}文本提取:")
            print(text)
修复点说明
  • 路径拼接全部替换为os.path.join(),自动处理路径分隔符,从根源避免路径拼接错误,同时兼容Windows、macOS、Linux多系统路径规则。
  • 将结果文件的打开操作移到循环外层,全程仅打开一次文件,不会出现循环覆盖写入的问题;指定encoding='utf-8'避免识别到特殊字符时触发编码报错。
  • 增加图片格式校验逻辑,自动跳过目录下的非图片文件,避免PIL尝试打开非图片格式文件触发报错。
  • 适配os.walk的遍历逻辑,使用返回的root值拼接文件路径,即使图片存在子目录中也能正常识别。
  • 增加图片识别结果分隔标识,后续查看结果文件时可以快速区分内容对应的源图片。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 19:18:47