1

これは、Python と Raspberry Pi のプログラミングに対する私の最初の試みです。私の小さなプロジェクトは、Twitter で言及されたときに LED を点灯させることです。すべて非常にシンプルで、以下に示すコードはうまく機能します。私の質問は、以前の言及を変数ではなくテキスト ファイルに保存することに関するものです。基本的に、コードは、プログラムが再実行されるたびに LED が点滅し続けるのを防ぐために、すでに表示されている tweet.ids のリストについて、printed_ids 変数をチェックします。私の計画は、スケジュールされたジョブでpythonコードを実行することですが、Piを再起動してプログラムを実行するたびに、プログラムがすべての言及を通過し、発生するたびに.印刷された_ids 変数。そのため、プログラムが再起動しても生き残るように、代わりにテキスト ファイルに書き込むことを考えました。

何か考え/推奨事項はありますか?

ご協力いただきありがとうございます。

import sys
import tweepy
import RPi.GPIO as GPIO ## Import GPIO library
import time ## Import 'time' library. Allows use of 'sleep'
GPIO.setmode(GPIO.BOARD) ## Use board pin numbering

CONSUMER_KEY = '******************'

CONSUMER_SECRET = '*****************'

ACCESS_KEY = '**********************'

ACCESS_SECRET = '*********************'

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)
speed = 2

printed_ids = []

while True:
    for tweet in api.mentions_timeline():
            if tweet.id not in printed_ids:
                    print "@%s: %s" % (tweet.author.screen_name, tweet.text)
                    GPIO.setup(7,GPIO.OUT) ## Setup GPIO Pin 7 to OUT
                    GPIO.output(7,True)## Switch on pin 7
                    time.sleep(speed)## Wait
                    GPIO.output(7,False)## Switch off pin 7
                    f.open('out','w')
                    f.write(tweet.id)
                    ##printed_ids.append(tweet.id)
                    GPIO.cleanup()
                    time.sleep(60)  # Wait for 60 seconds.
4

1 に答える 1

0

あなたが探しているのは「シリアライゼーション」と呼ばれるもので、Python はそのための多くのオプションを提供しています。おそらく、最も単純で移植性の高いものはjson モジュールです。

import json

# read:

with open('ids.json', 'r') as fp:
    printed_ids = json.load(fp) 
    # @TODO: handle errors if the file doesn't exist or is empty

# write:

with open('ids.json', 'w') as fp:
    json.dump(printed_ids, fp)
于 2013-10-10T12:29:46.897 に答える