Я пишу программу, которая в 3AM, она читает все из файла и загружает файлы из ссылок один за другим и перестает делать это (паузы загрузка), если это 7AMОстановка потока без цикла (функция, которая занимает много времени)
Но моя проблема в том, что если я использую os.system("wget name")
, я не смогу остановить его, я не могу поставить флаг в цикле while, чтобы проверить его, потому что os.system()
не закончится до тех пор, пока загрузка завершена. Я не могу думать иначе. Моя сеть нестабильна, поэтому я предполагаю, что мне нужно использовать wget
, я слышал о urllib
, но я не уверен, что она будет работать с моим нестабильным соединением!
Я планирую продолжить это на ArchLinux на моем Raspberry Pi
использовать 'handle = subprocess.Popen (['wget', 'name'])' вместо этого. Функция 'handle' имеет функцию' .poll() 'для проверки состояния и' .terminate() 'для завершения процесса. Также есть 'send_signal (SIGNAL)', но все это опасно, если не сделано правильно. – Torxed
И тогда убитый подпроцесс все еще работает в фоновом режиме? Думаю, ему нужно что-то вроде группы процессов, описанной здесь: http://stackoverflow.com/questions/4789837/how-to-terminate-a-python-subprocess-launched-with-shell-true –
Спасибо большое! что будет работать, я думаю, уже слишком поздно я напишу код tomarrow! – user3033693