更改输出文件以运行数据流?

时间:2016-06-15 11:56:26

标签: python twitter file-io output

我创建了一个简单的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循环,它会不断检查时间,并在日期更改后立即为输出打开一个新文件。你能指点我正确的方向吗?谢谢!

2 个答案:

答案 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'