如何为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
相关产品推荐
相关产品推荐

