Tweetstream每10分钟计一次推文和写文件

时间:2013-05-15 18:48:54

标签: python twitter tweetstream

我有一个小脚本,它正在使用tweetstream获取推文的数量并将其写入文件,但我看到有50 / s的限制,可能因为文件IO,我想尝试存储值在变量中然后,每10分钟用变量的值写入文件,我该怎么做?

#!/usr/bin/python
import tweetstream
import sys
print sys.argv
twitterUsername = "username"
twitterPassword = "password"
twitterWordFilter = sys.argv[1]

try:
    with tweetstream.FilterStream(twitterUsername, twitterPassword,track=twitterWordFilter) as stream:
        for tweet in stream:
            file = open('/monitor/'+str(sys.argv[2])+'.txt','w+')
            file.write(str(stream.count))
            file.close
            #print tweet #Use for raw output

except tweetstream.ConnectionError, e:
    print "Disconnected from twitter. Reason:", e.reason

1 个答案:

答案 0 :(得分:0)

@tdelaney的评论正确。

先计时!在写入磁盘之前,Python(实际上是clib)和操作系统已经缓存了文件写入。 Twitter流很可能很慢。您可以在写入之前和之后获取时间并打印差异。顺便说一句,您还希望牛仔腿在close file.close()上。而且由于您只是一遍又一遍地打开同一文件,因此只需在for循环外将其打开一次即可。