我创建了一个简单的python脚本,用于侦听过滤后的twitter流,并将数据写入一个简单的文本文件。
# -*- 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循环,它会不断检查时间,并在日期更改后立即为输出打开一个新文件。你能指点我正确的方向吗?谢谢!
答案 0 :(得分:1)
只需替换
'data.txt'
与
time.strftime('%Y-%m-%d',time.localtime())+'-data.txt'
在使用上述代码之前,请不要忘记import time
。
time.localtime()
将获取当前本地时间,该时间将使用time.strftime()
格式化为YYYY-MM-DD。
答案 1 :(得分:1)
或者,如果您希望文件时间戳为UTC而不是localtime:
>>> import time
>>> time.strftime("%Y-%m-%d-data.txt", time.gmtime(time.time()))
'2016-06-15-data.txt'