2017-02-20 43 views
0

Я начинаю питон, я пытаюсь получить webradio и сохранить поток внутри файла. Я хочу, чтобы потоковое содержимое через некоторое время (только для 1 часа потока). Поэтому я не пишу весь поток в одном файле, я пытаюсь сохранить поток во многих файлах (output_1.bin в течение одной минуты, output_2.bin для следующего ...)выходим из инструкции for и записываем поток в новый файл в python

Но я не могу для правильного выхода из «for». exit() не используется для этой цели?

def download_file(url): 
    r = requests.get(url, stream=True) 
    i = 1 
    while True: 
     local_filename = "output_"+str(i)+".bin" 
     with open(local_filename, 'wb') as f: 
      for chunk in r.iter_content(chunk_size=1024): 
       if chunk: # filter out keep-alive new chunks 
        f.write(chunk) 
        i = i+1 
        print("iteration",i,"and modulo result :",i % 10,"\n") 
        if i % 10 == 0: 
         exit() 
     f.close() 
     print("Am I out of the for ?") 
    return local_filename 

download_file('http://direct.franceinfo.fr/live/franceinfo-lofi.mp3') 
+2

'exit()' выходит из процесса. Вы, наверное, хотите «перерыв». – cdarke

+1

Я думаю, что вы можете искать команду break not exit() – Whud

+0

Кстати, вы не должны использовать 'exit()' в скрипте даже для выхода из процесса (он предназначен только для интерактивного использования), вы должны использовать 'sys.exit()' вместо этого. – cdarke

ответ

1

exit() выходит из приложения python. Что вы хотите, это break.

+0

Wahouuu выразить ответ! Это прекрасно ... Извините, я не смог найти нужную команду. Это швы, мне нужно подождать 15 минут, чтобы принять ваш ответ – Antoine

+0

, а после этого 'f.close()' выйдет из строя 'на закрытом файле, потому что с блоком уже закрыл файл. –

+0

Правда, вам не нужно 'f.close()', так как вы все равно открыли файл в блоке 'with'. –