Я использую API-интерфейс Twitter Streaming для получения твитов, соответствующих определенному ключевому слову. Полученный результат записывается в файл. Я делаю некоторое базовое сравнение, основанное на расстоянии, из которого происходит твит, и я пишу для отдельного файла соответственно.Twitter Streaming API Python - запись неполных данных в файл
lat2=float(d['geo']['coordinates'][0])
long2=float(d['geo']['coordinates'][1])
lat1=venue_latitude
long1=venue_longitude
lon1, lat1, lon2, lat2 = map(radians, [long1, lat1, long2, lat2])
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * asin(sqrt(a))
distance = 6367 * c * 0.621371
if distance < 1:
user= d['user']['screen_name']
user_id=d['user']['id']
file=open('Tweets_within_one_mile.txt','a')
users.append(user)
text=str(user) + str(user_id)+ "qwertyasdfgzxcvb" + str(distance) + d['text']
u = text.encode('utf-8')
file.write(u)
file.close()
if distance > 2 and distance < 60:
user= d['user']['screen_name']
user_id=d['user']['id']
file=open('Tweets_within_sixty_miles.txt','a')
users.append(user)
text=str(user) + str(user_id) + str(co_lon2) +d['text']
u = text.encode('utf-8')
file.write(u)
file.close()
Когда я запустил сценарий в последний раз. Количество собранных твитов составило 30 000. Но только 20 000 твитов были полностью записаны в файл. Остальные 10 000 были незарегистрированными.
Есть ли проблема с выходным буфером Python?