如何从文本中检测关键字?

How to detect keywords from text?

我正在尝试在 Python 中制作一个脚本,以便在工作中使用它来自动执行我的一些任务。我一直在使用模块 pyautogui 来模拟鼠标点击和击键,到目前为止效果很好!

现在我正在尝试弄清楚如何自动输入 Python 几行文本并检测一些关键字。每次我 运行 脚本时文本都会在同一个地方,所以我想我可以使用 pyautogui select 我想要的文本并将其复制到我的剪贴板。之后,我将使用模块 win32clipboard 来提供 Python 文本。

Python 最终只是打印剪贴板上的任何内容。 我究竟做错了什么?有没有更简单的方法?

import win32clipboard

win32clipboard.OpenClipboard()
data = win32clipboard.GetClipboardData()
win32clipboard.CloseClipboard()
mytext = input(data)
keywords = ["m1", "M1", "Melding 1"]

if any(keyword in mytext for keyword in keywords):
     print("test")

input('Press ENTER to exit')

您可以替换:

if any(keyword in mytext for keyword in keywords):
     print("test")

更长更丑(但实用!):

for word in mytext.split(' '):
    for keyword in keywords:
        if keyword == word: print word

你的一般问题是你没有解析你的文本。它作为一个大块进来。您需要将其拆分为单词列表,以便评估每个单词。

...
wordlist = mytext.split()

for trigger in keywords:
   if any(trigger in s for s in wordlist):
      print("HIT!")
...

input(data) 显示 data 并等待您的输入(稍后成为 mytext 的值)。只需删除该行。 data 是您的文字:

if any(keyword in data for keyword in keywords):
     print(keyword)

如果您的关键字 没有空格 ,您可以改进程序以避免偶然的子字符串匹配,并通过将文本拆分为标记并比较标记集来获得更好的性能到关键字集:

keywords = {"m1", "M1", "Melding_1"}
if keywords & set(data.split()):
     print("test")