我正在提供以下代码,该代码在linux平台上可完美运行,但在winodws平台上无法执行。它与pytesseract行为有关。
def imgps():
try:
answer = filedialog.askdirectory(parent=root,
initialdir=os.getcwd(), title="Please select a folder:")
for fn in os.listdir(answer):
if fn.endswith(".png") or fn.endswith(".jpg"):
x = os.path.join(answer, fn)
print(x) #loop breaks after this.
rd = pytesseract.image_to_string(Image.open(x), lang='eng').replace('-\n', '') \
.replace('\n', ' ').encode("ascii", 'ignore')
tb9.insert('insert', rd)
tb9.insert('insert', br)
else:
continue
except:
messagebox.showinfo(message="No File to Display.")
单击按钮即可执行上述功能。我想我也不必给出其代码。帮助将不胜感激。我所看到的是,print命令先执行第一个文件,然后执行循环中断,这确认问题出在Windows中的pytesseract行为。帮助将受到高度赞赏。
答案 0 :(得分:1)
最后,我必须自己找到解决方案。有这样的代码行。
需要在函数中添加pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files/Tesseract-OCR/tesseract.exe'
来告诉pytesseract使用tesseract的位置。仅当脚本和tesseract程序文件位于同一驱动器上时,设置环境变量才能起作用。如果它们在其他驱动器上,则可以解决此问题。