Tweepy SaveFile не определен

Я новичок в Python, и я пытаюсь использовать Tweepy для сохранения некоторых твитов, и при этом я пытаюсь записать их в файл.

Я получаю ошибку, что 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 = Stream (auth, listener ()) twitterStream.filter (track = ['prime'])

Кажется, мой токен работает нормально, а твиты транслируются в режиме ожидания. Файл появляется, хотя там ничего нет

Код ошибки

Ошибка данных, глобальное имя 'saveFile' не определено

Это как указано выше распечатать данные

2 ответа

Решение

Ошибка должна быть из-за опечатки - обратите внимание, что используемое здесь имя переменной не является saveFile.

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

Также учтите, что вы открываете файл в режиме "w" для каждого твита - так как код теперь, вы будете перезаписывать файл при каждом получении твита.

Лучший способ сделать это - открыть файл при инициализации слушателя (__init__), а затем напишите в него из on_data:

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

Не забудьте закрыть файл после того, как работа сделана.

Кстати, есть csv модуль, который может помочь в чтении и записи файлов CSV: https://docs.python.org/3/library/csv.html

TYPO в сценарии, изменить safeFile = open('twitDb.csv', 'w') в saveFile = open('twitDb.csv', 'w'),

Я предлагаю начать использовать IDE или редакторы, которые выделяют эти опечатки для вас, например, PyCharm.

Другие вопросы по тегам