2016-07-19 11 views
0

Ich bin neu in Python (und Programmierung im Allgemeinen) und ich versuche, ein Skript zum Sammeln von Tweets zu schreiben. Ich kann das Skript nicht dazu bringen, die Tweets in der Datei auszudrucken. Die Tweets erschienen im Idle mit den Fehlern „failed onData, globale Namen‚savefile‘ist nicht definiert“ und sie nicht in der Datei gedruckt werdenTweepy: kann keine Tweets in Datei

ich diesen Code lautete:

from tweepy import Stream 
from tweepy import OAuthHandler 
from tweepy.streaming import StreamListener 
import time 

ckey = ??? 
csecret = ??? 
atoken = ???? 
asecret = "??? 

class listener(StreamListener): 

def on_data(self, data): 
    try: 
     print data 
     savefile = open('twitDB.json','a') 
     saveFile.write(data) 
     savefile.write('\n') 
     saveFile.close() 
     return True 
    except BaseException, e: 
     print "failed ondata,",str(e) 
     time.sleep(5) 


def on_error(self, status): 
    print status 

auth = OAuthHandler(ckey,csecret) 
auth.set_access_token(atoken, asecret) 
twitterStream = Stream(auth, listener()) 
twitterStream.filter(track=["movistar"]) 
from tweepy import Stream 
from tweepy import OAuthHandler 
from tweepy.streaming import StreamListener 

Jede Art von Hilfe ist willkommen

Antwort

0

Werfen Sie einen Blick auf die saveFile Variable.

Zum ersten Mal können Sie es als speichern verwendet f ile, dann verwendet man speichern F ile (man beachte den Brief f und Kapital F)

ändern alle Vorkommen auf dem gleichen Namen und sollte arbeiten.

Seien Sie auch vorsichtig, wenn Sie dies in der on_data Methode tun. Soweit ich weiß, wird es für jeden einzelnen Tweet, den Sie erhalten, aufgerufen. Das heißt, Sie öffnen die Datei, schreiben den Tweet, schließen die Datei und dann wieder für jeden Tweet.