Python 3.x praw reddit机器人响应多次

Python 3.x praw reddit机器人响应多次,python-3.x,praw,Python 3.x,Praw,我试图用praw制作一个reddit机器人,但它多次对同一条评论作出响应 这是我的密码: keyphrases = ["test","test2","test3"] for comment in subreddit.stream.comments(skip_existing=True): for keyphrase in keyphrases: if keyphrase in comment.body:

我试图用praw制作一个reddit机器人,但它多次对同一条评论作出响应

这是我的密码:

keyphrases = ["test","test2","test3"]

for comment in subreddit.stream.comments(skip_existing=True):
    for keyphrase in keyphrases:
        if keyphrase in comment.body:
            try:
                comment.reply("hi")
            except:
                print("to frequent")

考虑当一条评论中有多个关键短语时会发生什么。根据这段代码,我们将检查第一个关键字短语,然后回复,然后在循环的下一次迭代中检查第二个关键字短语,然后再次回复,依此类推

如果即使注释中有多个关键字,您也只需要一个回复,那么当您发现第一个关键字匹配时,您可以
中断

for keyphrase in keyphrases:
    if keyphrase in comment.body:
        try:
            comment.reply("hi")
            break
        except:
            print("too frequent")

循环退出,不再执行任何迭代。

我有两个建议供您参考。首先,尝试打印(ID)。您会注意到所有ID都以换行符结尾。如果注释ID为
abc123
,当使用
.readlines()
从文件中读取时,它将显示为
abc123\n
。你可以试着去掉这个空白,或者更好……你实际上不需要这些文件,因为PRAW可以帮你处理。如果您在subreddit.stream.comments(skip_existing=True)中对注释执行
,则PRAW将只向您提供自循环开始以来发布的注释,这意味着您永远不会得到重复的注释。然后,您不需要对文本文件执行任何操作。顺便说一句,你可以查看更多信息。我希望这有帮助@jarhill0虽然跳过已有的帮助,但机器人仍然(很少)一遍又一遍地开始响应相同的注释,直到我关闭脚本时才停止,我更新了帖子以显示我当前的代码。