【问题标题】:String comparison does not work in python字符串比较在python中不起作用
【发布时间】:2017-08-29 10:11:41
【问题描述】:

我正在编写一个适用于tesseract-ocr 的脚本。我从屏幕上获取文本,然后我需要将它与字符串进行比较。问题是即使我确定字符串相同,比较也会失败。

我怎样才能让我的代码工作?

这是我的代码:

import pyscreenshot as pss
import time
from pytesser import image_to_string

buy=str("VENDI")
buyNow=str("VENDI ADESSO")
if __name__ == '__main__':
    while 1:
        c=0

        time.sleep(2)
        image=pss.grab(bbox=(1104,422,(1104+206),(422+30)))
        text = str(image_to_string(im))
        print text
        if text==buy or text==buyNow:
            print 'ok'

例如作为输入:

我得到的输出是:

VENDI ADESSO

我需要比较哪个字符串,但在执行过程中我在控制台上没有得到ok?

【问题讨论】:

  • 请分享一些意见...
  • 您介意提供一个示例输出吗?
  • 尝试打印repr(text),看看里面有没有什么意外。
  • 试试:print text, len(text),看看是否没有任何“隐藏”字符(例如 space 或 eoln)。
  • 请为您的变量和函数使用有意义的名称。更容易理解你的观点。

标签: python string comparison tesseract python-tesseract


【解决方案1】:

事实证明,您的字符串末尾有换行符 (\n\n)。

你可以使用

text = text.strip()

从字符串中删除任何周围的空格。

【讨论】:

  • 这发生在某些 csv 文件中。需要使用如上图的strip()进行比较。它们看起来完全一样,但 csv 有一个新行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-20
  • 2015-01-12
  • 1970-01-01
  • 1970-01-01
  • 2014-04-03
相关资源
最近更新 更多