2016-02-27 76 views
1

我是一名Python初学者,我正尝试使用Tweepy来保存一些推文,并且这样做时我正努力将它们写入文件。Tweepy SaveFile未定义

我得到了saveFile未定义的错误。

类监听器(StreamListener):

def on_data(self, data): 
    try: 
     print data 
     safeFile = open('twitDb.csv', 'w') 
     saveFile.write (data) 
     saveFile.write('\n') 
     saveFile.close() 
     return True 
    except BaseException, e: 
     print'failed ondata,',str(e) 

def on_error (self, status): 
    print status 

AUTH = OAuthHandler(CONSUMER_KEY,CONSUMER_SECRET) auth.set_access_token(的access_token,access_token_secret)

twitterStream =流(AUTH,听者()) twitterStream .filter(track = ['prime'])

我的令牌似乎工作正常,而且tweets在闲置状态下进行流式处理。该文件显示,虽然没有什么在那里

错误代码是

失败昂达,全局名称“saveFile的”没有定义

它确实提到打印数据

+0

如何调用'on_data'? –

+1

请包含完整的代码和完整的错误追溯。 – Forge

回答

0

错误必须是因为输入错误 - 请注意,此处使用的变量名称不是saveFile

safeFile = open('twitDb.csv', 'w') 

同时认为,要打开的文件中的“W”模式,每鸣叫 - 作为代码现在,你会每次收到鸣叫时间覆盖该文件。

一个更好的办法来做到这一点是初始化监听器(__init__)时,打开该文件,然后从on_data写它:

class listener(StreamListener): 
    def __init__(self): 
    self.saveFile = open('twitDb.csv', 'w') 

千万记住以后的工作完成后要关闭该文件。

BTW有一个csv模块,可以帮助读写CSV文件:脚本https://docs.python.org/3/library/csv.html

+0

请显示完整的代码和完整的错误引用。 (加入像gist.github.com这样的服务,并在你的问题中包含一个链接 - 也添加一个更新到你的问题,错字是由仍然错误修复)。 – CaptSolo

+1

这很好。对不起,这个愚蠢的错误。非常感谢您的帮助。 –

+0

对不起以前的评论,错字是错误。 –

0

错字,改变safeFile = open('twitDb.csv', 'w')saveFile = open('twitDb.csv', 'w')

我的建议,使用是开始使用IDE或编辑,其强调的是错别字你,比如PyCharm

+0

这很好。非常感谢您的帮助 –

+0

@FreddieButcherd欢迎您!祝你今天愉快 :) –