LINUX.ORG.RU

Как-то так:

f = open(destination, 'wb')
r = session.get(DOWNLOAD_URL, params=params, stream=True)
for data in r.iter_content():
    if download_condition:
        f.write(data)
    else:
       # удалить файл
vvn_black ★★★★★ ()
Последнее исправление: vvn_black (всего исправлений: 1)
Ответ на: комментарий от vvn_black

сделал так:

uri, ext = helpers.search.get_youtube_streams(self.id, self.parent.cache_dir)
		full_dir = self.parent.cache_dir + 'cache.%s' % ext
		if os.path.isfile(full_dir):
			os.remove(full_dir)
		f = open(full_dir, 'wb')
		r = requests.get(uri, stream=True)
		for data in r.iter_content(1024):
		    if not self.parent.lost_last_track_load:
		        f.write(data)
		    else:
		       os.remove(full_dir)
Циклит бесконечно...

noname_user ★★★ ()
Ответ на: комментарий от noname_user

В ветку else, наверное, не?

Сначала закрыли дескриптор, потом удалили файл, всё прерываем цикл, нам качать уже не надо. А если не прерываем, всё и так докачается как надо.

vvn_black ★★★★★ ()
Ответ на: комментарий от noname_user
for data in r.iter_content():
    if not self.parent.lost_last_track_load:
        f.write(data)
    else:
        f.close()
        os.remove(full_dir)
        return  # или break

f.close()  # и другие действия

vvn_black ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.