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

Python 如何从文本中检测关键字?,python,python-3.x,pyautogui,Python,Python 3.x,Pyautogui,我正在尝试用Python编写一个脚本,以便在工作中使用它来自动化我的一些任务。我一直在使用pyautogui模块来模拟鼠标点击和按键,到目前为止效果非常好 现在,我正试图找出如何自动向Python提供几行文本并检测一些关键字。每次运行脚本时,文本都将位于相同的位置,因此我想我可以使用pyautogui选择所需的文本并将其复制到剪贴板。之后,我将使用模块win32clipboard为Python提供文本 Python最终只是打印我剪贴板上的任何内容。 我做错了什么?有没有更简单的方法 import

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

现在,我正试图找出如何自动向Python提供几行文本并检测一些关键字。每次运行脚本时,文本都将位于相同的位置,因此我想我可以使用pyautogui选择所需的文本并将其复制到剪贴板。之后,我将使用模块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")
更长更丑(但功能更强大!):


你们的普遍问题是你们并没有解析你们的文本。它就像一个大街区。您需要将其拆分为一个单词列表,以便对每个单词进行评估

...
wordlist = mytext.split()

for trigger in keywords:
   if any(trigger in s for s in wordlist):
      print("HIT!")
...
input(data)
显示
数据
并等待您的输入(稍后将成为
mytext
的值)。只需删除该行<代码>数据是您的文本:

if any(keyword in data for keyword in keywords):
     print(keyword)
如果您的关键字没有空格,您可以通过将文本拆分为标记并将标记集与关键字集进行比较来改进程序,以避免意外的子字符串匹配,并获得更好的性能:

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

“融合1”与拆分文本不匹配,因为文本中的“融合1”将拆分为两个标记。“融合1”与拆分文本不匹配,因为文本中的“融合1”将拆分为两个标记。在您的示例中,它是“融合1”,不会被空格字符拆分。如果你在寻找短语,你需要一个更复杂的方法。这就是为什么我说“如果你的关键词没有空格…”谢谢,我把你的文章误读为原文。OP将需要使用正则表达式或搜索库。也许是这个
keywords = {"m1", "M1", "Melding_1"}
if keywords & set(data.split()):
     print("test")