2016-06-15 7 views
1

フィルタリングされたtwitterストリームをリッスンし、単純なテキストファイルにデータを書き込むシンプルなpythonスクリプトを作成しました。実行中のデータストリームの出力ファイルを変更しますか?

# -*- coding: utf-8 -*- 
from tweepy import Stream 
from tweepy import OAuthHandler 
from tweepy.streaming import StreamListener 

# security credentials ommited 

searchstr = 'SEARCHSTRING' 

class listener(StreamListener): 

    def on_data(self, data): 
     with open('data.txt', 'a') as fp: 
      fp.write(data) 
     return True 

    def on_error(self, status): 
     print(status) 
     return True 

auth = OAuthHandler(ckey, csecret) 
auth.set_access_token(atoken, asecret) 

twitterStream = Stream(auth, listener()) 
twitterStream.filter(track=[searchstr]) 

データストリームを停止せずに毎日出力ファイルを変更できますか?私はYYYY-MM-DD-data.txtの形式でファイルを保存したいと思います。

私の直感は、時間が連続的にチェックされ、日付が変わるとすぐに出力のために新しいファイルを開く別のwhileループが必要であることを私に伝えます。あなたは正しい方向に私を指差してくれますか?ありがとうございました!

答えて

1

ただ、上記のコードを使用する前に、import timeに忘れてはいけない

time.strftime('%Y-%m-%d',time.localtime())+'-data.txt' 

'data.txt' 

を交換してください。

time.localtime()は、time.strftime()を使用してYYYY-MM-DDにフォーマットされる現地時間を取得します。

1

また、あなたの代わりにlocaltimeののUTCでファイルのタイムスタンプたい場合:

>>> import time 
>>> time.strftime("%Y-%m-%d-data.txt", time.gmtime(time.time())) 
'2016-06-15-data.txt' 
関連する問題