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

如何为Tesseract正确将文件路径传入argparser?解决参数配置报错

问题根源:Argparse参数定义逻辑错误

你这里的核心问题是完全搞错了argparse参数的定义方式——你把图像文件路径直接写在了add_argument的长选项位置,而不是把路径作为运行脚本时传入的参数值。

正确的参数定义代码

先把你的argparse配置改成下面这样:

ap = argparse.ArgumentParser()
# -i 是短别名,--image 是参数名,路径需要在运行脚本时传入
ap.add_argument("-i", "--image", required=True, help="path to input image to be OCR'd")
ap.add_argument("-p", "--preprocess", type=str, default="thresh", help="type of preprocessing to be done")
args = vars(ap.parse_args())

正确的脚本运行方式

修改完代码后,你需要在命令行执行脚本时,通过-i或--image选项传入你的图像实际路径,比如:

# 使用短选项传入路径
python your_script_name.py -i /Users/bob/Desktop/image.png

# 或者使用长选项传入路径
python your_script_name.py --image /Users/bob/Desktop/image.png

为什么你的代码会报错

你原来的代码里,把--Users/bob/Desktop/image.png当成了参数的长选项名,这完全不符合argparse的设计逻辑:

  • add_argument里的-i和--xxx是参数的标识,用来告诉脚本“接下来的内容是某个参数的具体值”
  • 图像路径是这个参数的值,应该在运行脚本时动态传入,而不是硬写在参数定义里

错误提示里的argument -Users/bob/Desktop/image.png/--image is required也印证了这一点——脚本误以为你定义了一个名叫-Users/bob/Desktop/image.png的参数,要求你传入它的值,但这显然不是你想要的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:07:38