0
作为Python的新用户,我遇到了以下代码的问题。我不需要在屏幕上打印Twitter搜索的结果,而需要保存文件(理想情况下是管道分隔符,我还不知道如何生成...)。但是,下面的代码运行正常,但不会创建Output.txt文件。它做了一次,然后再也没有。我在Mac OS上运行它,并用Ctrl + C结束代码(因为我仍然不知道如何修改它以返回特定数量的推文)。我认为这个问题可能与Flush'ing而是力图包括来自这篇文章的选项后:Flushing issues他们都不似乎工作(除非我做错了什么事比可能更多...)保存输出的Python问题
import tweepy
import json
import sys
# Authentication details. To obtain these visit dev.twitter.com
consumer_key = 'xxxxxx'
consumer_secret = 'xxxxx'
access_token = 'xxxxx-xxxx'
access_token_secret = 'xxxxxxxx'
# This is the listener, resposible for receiving data
class StdOutListener(tweepy.StreamListener):
def on_data(self, data):
# Twitter returns data in JSON format - we need to decode it first
decoded = json.loads(data)
# Also, we convert UTF-8 to ASCII ignoring all bad characters sent by users
print '@%s: %s' % (decoded['user']['screen_name'], decoded['text'].encode('ascii', 'ignore'))
print ''
return True
def on_error(self, status):
print status
if __name__ == '__main__':
l = StdOutListener()
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
print "Showing all new tweets for #Microsoft"
stream = tweepy.Stream(auth, l)
stream.filter(track=['Microsoft'])
sys.stdout = open('Output.txt', 'w')
谢谢,这很有道理。恐怕我的编码水平非常有限,以至于更复杂的建议可能会让我花费太长时间:/ 但无论如何,这会带回我原来的问题 - 这个工作有一次,然后看起来Output.txt只是获取修正;即使我更改名称并重新运行脚本(我用Ctrl + C关闭它,但我不确定它是否正确)。所以万一我想运行这个脚本为不同的关键字和写入不同的文件它不工作... – Zegro 2014-10-31 14:37:27