使用pytesseract创建变量

时间:2018-02-23 12:26:48

标签: python-2.7 variables ocr tesseract

在我的代码中

from PIL import Image
import pytesseract

print(pytesseract.image_to_string(Image.open('test.png')))

我从here得到的结果(仅来自问题和答案)是:

Which team surrendered
the biggest lead in Super
Bowl history?

Atlanta Falcons

Denver Broncos

Buffalo Bills

有没有办法说第1,第2和第3行是问题,然后第5行是答案1等等?

1 个答案:

答案 0 :(得分:1)

根据图像之间的数据差异,这应该有效。如果你总是有'?'拆分。

image_text=pytesseract.image_to_string(Image.open('test.png'))
text_list=image_text.split('?')

这将为您提供包含2个元素的列表。首先是在所有人之前?之后的第二个。如:

print(text_list)
['Which team surrendered\nthe biggest lead in Super\nBowl history',
'\n\nAtlanta Falcons\n\nDenver Broncos\n\nBuffalo Bills']

从这里你可以定义q和a。作为问答。

q =  text_list[0]
a =  [a for a in text_list[1].split('\n') if a]

上面的逻辑将保留问题的新行,将其格式化为:

Which team surrendered
the biggest lead in Super
Bowl history?

然后变量a将填充一个答案列表,列表中没有任何空行。所以print(a)会返回:

['Atlanta Falcons', 'Denver Broncos', 'Buffalo Bills']

请记住,此修复程序取决于其中包含?的文本,以定义字符串的哪一半是问题,哪个是答案。