Как в Python мне самому изменить переменную во время работы программы в цикле?
Всем привет.
Не очень уверен как это правильно сформулировать, прошу подсказать если это как то называется.
У меня есть цикл for file in os.listdir(), цикл гоняет запуск subprocess с продолжительной работой другой программы.
Сам код работает, но мне было бы интересно иметь возможность не просто остановить выполнение кода в момент нажатия, а сделать какой то способ, чтобы программа продолжила работать, но остановилась в предусмотренный момент, что то вроде:
- Я запускаю код. Код начинает работать.
- Код доделывает 1й проход цикла. Код делает проверку флага, если флаг False - проверка ничего не делает и цикл естественно переключается на 2й файл цикла for. Потом на третий и.т.п.
- Я сам, вручную делаю что то как то, в любой момент исполнения программы, когда мне приспичит, и флаг становится True. Но меня не устраивает простой input, который жестко фиксирован и будет останавливать программу пока я не введу туда что то, программа должна работать без прерываний до тех пор, пока я не сделаю что то как то.
- В конце очередного прохода, флаг True, проверка срабатывает, и программа заканчивается.
Собственно, есть ли какой то способ сделать это самое что то как то чтобы не грохнуть программу сразу, а именно переключить флаг внутри программы, а дальше уже сама программа обработала этот флаг в нужный момент?
Использую python 3.9 через PyCharm community последнего апдейта.
Update 1: видимо нужно уточнить. У меня есть цикл. В цикле я делаю целую кучу разных действий. Как до запуска subprocess, так и после. Мне, как минимум, надо убедиться, что та, другая программа запускаемая через subprocess, отработала без ошибок... Если я жмякаю кнопку стоп в pycharm'е, оно прерывается прям вот в тот же момент. Мне же нужно прерваться не тогда, когда была нажата кнопка. И даже не сразу после отработки subprocess'а. Мне нужно прерваться именно тогда, когда нужно прерваться мне, и при этом сделать именно те действия, которые мне нужно чтобы сделало при этом прерывании.