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

如何在Python脚本中执行CLI命令,解决调用ABBYY FineReader报错问题

报错原因
  • os.system调用问题
    1. 路径转义错误:Windows路径中的反斜杠\在Python普通字符串中是转义字符,会导致路径解析错误
    2. 引号嵌套错误:你写的命令中提前闭合了程序路径的引号,导致系统将空格前的C:\Program识别为独立命令,触发截断报错
    3. 文件名不匹配:实际要读取的图片是Skan.JPG,你写的是skan.JPG,路径不一致会触发报错
  • subprocess调用问题
    1. 同样存在路径未用原始字符串导致的转义问题
    2. 参数拆分错误:subprocess传列表参数时,每个参数项必须单独拆分,不能把/send和Clipboard放在同一个字符串里,否则程序会将整段识别为单个参数无法解析
    3. 部分测试代码文件名写错为scan.JPG,和实际路径不符
正确实现方式

优先使用subprocess实现,稳定性和可调试性更强,代码如下:

import subprocess
import pyperclip  # 可选,用于后续读取剪贴板内容

# 路径加r前缀标记为原始字符串,避免反斜杠转义
ocr_program = r"C:\Program Files (x86)\ABBYY FineReader 15\FineReaderOcr.exe"
image_path = r"C:\Python39\Scripts\abbyy\Skan.JPG"

# 所有参数单独拆分作为列表元素,不需要额外加引号
cmd_list = [
    ocr_program,
    image_path,
    "/lang", "Polish",  # 不需要波兰语可删除这两项
    "/send", "Clipboard"
]

# check=True参数会在命令执行失败时主动抛出异常,方便排查
subprocess.run(cmd_list, check=True)

# 可选:读取剪贴板中识别完成的文本
ocr_result = pyperclip.paste()
print(ocr_result)

如果需要用pyperclip读取剪贴板,可先执行pip install pyperclip安装依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:15:04