我写了一个机器人。我将注释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)
答案 0 :(得分:1)
当您从cache.txt回读时,列表中的条目还包含一个尾随的' \ n'。所以你的比赛将失败。
尝试使用没有换行符的readlines。
with open('cache.txt', 'r') as f:
cache = [ line.rstrip('\n') for line in f ]