2016-06-27 19 views
0

私はボロボロと書いています。私は、ボットがすでに返信したコメントにボットが返答するのを避けるために、コメントIDをキャッシュという名前のリストに保存します。 これはIDを保存するために使用する方法です。ボットが既に返信したコメントに返信します

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

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

これも機能しました。ボットは、リストにファイルからのすべてのIDをロードする必要があり、再起動後

: キャッシュ= []

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

出力は正しいです。

しかし、ボットは彼がすでに返信したコメントに返信します。

「テスト」が正しくありませんか?

+0

テストの詳細を共有することができますか?私たちはすべて、より良い概観を持っていますか? – Oni1

+1

'id'はどんなタイプですか?ファイルから読み込むと、すべてのエントリが 'int'(またはバイト対文字列)ではなく文字列になります – Gert

+0

IDは文字列です。 d4p2rv0 – unrealwombat

答えて

1

cache.txtからリードバックすると、リストのエントリには末尾に '\ n'も含まれます。あなたの試合は失敗します。

改行なしで読者にこれを試してください。

+0

または 'cache = [line in f in]'のようになります。私はこれがより速いと思う。 :) – erip

+0

@erip私はそれを知りませんでした。 btw、あなたはcache = [line inr]の[line.rstrip( '\ n')]を意味しますか? –

+0

あなたは正しいですが、私がコードを修正した後も、彼はすでにコメントに返信しているという事実を無視しています – unrealwombat

関連する問題