1

我有一个小脚本,它使用 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
4

1 回答 1

0

@tdelaney 的评论是正确的。

先计时!在访问磁盘之前,文件写入已经被 python(嗯,确实是 clib)和操作系统缓存了。推特流很可能很慢。您可以在写入和打印差异之前和之后获得时间。顺便说一句,您还希望关闭 file.close() 上的牛仔腿。而且由于您只是一遍又一遍地打开同一个文件,因此只需在 for 循环之外打开它一次。

于 2020-08-13T19:06:08.090 回答