Bot回复他已回复的评论

时间:2016-06-27 11:00:19

标签: python python-2.7 python-3.x reddit praw

我写了一个机器人。我将注释id保存在名为cache的列表中,以避免bot回复他已经回复的评论。 这是我用来保存id的方法。

def saveCache(id):
    cache.append(id)

    data = open("cache.txt", "a")
    data.write(id)
    data.write('\n')
    data.close()

这也有效。

重启后,机器人应该将文件中的所有ID加载到列表中: cache = []

def loadCache():
    with open('cache.txt', 'r') as f:
        cache = f.readlines()
        print ("cache: ")
        for line in cache:
            print(line)

输出正确。

但是机器人回复了他已回复的评论。

我的测试是'不正确吗?

 if id not in cache
     saveCache(id)
     comment.reply(message_to_reply_with)

1 个答案:

答案 0 :(得分:1)

当您从cache.txt回读时,列表中的条目还包含一个尾随的' \ n'。所以你的比赛将失败。

尝试使用没有换行符的readlines。

with open('cache.txt', 'r') as f:
    cache = [ line.rstrip('\n') for line in f ]