如何清理这个python输出

时间:2015-07-18 00:55:35

标签: python

我试图使用python模块textract从图像中提取文本,因为图像包含很多噪音,除了我感兴趣的实际文本之外,我得到的输出是噪音。可以有人建议使用代码来清理输出。

这是我的代码:

>>> for i in glob.glob("*.jpg"):
...     print(textract.process(i))

这是我的输出:

...






-s.

4‘-0-.r-v .-

5,14,45_18685-M

c.

.4








"V-0-an .-

5,14,44_17793-M


5,13,66

17951-N


5,13,65_17959-N

基本上我想要的是以数字" 5"开头的行。没有别的。所以我在上面的代码中添加了一行,但它仍然没有按照我预期的方式工作。

以下是修订后的代码

>>> for i in glob.glob("*.jpg"):
...     text = textract.process(i)
...     if text.startswith('5'):
...             print text

和修订代码的输出

5,13,66

17951-N


5,13,65_17959-N

2 个答案:

答案 0 :(得分:1)

也许您应该首先尝试将提取的文本拆分为行:

>>> for i in glob.glob("*.jpg"):
...     text = textract.process(i)
...     # Split text to multi lines
...     for line in text.split('\n'):
...         if line.startswith('5'):
...                 print line

答案 1 :(得分:0)

因此,考虑到您的最新输出,我认为您应该这样做:

for i in glob.glob("*.jpg"):
    text = textract.process(i).strip()
    if text.startswith('5'):
        print text

这将从输出中删除所有前导和尾随空格。看起来你的案例中有很多尾随空格,导致每行之间出现额外的行。