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.