Все программы, которые я вижу в руководствах, являются консольными, и код выполняется от первой строки до последней строки, и, если есть, все начинается с первой строки. Есть ли способ для консольных программ изменить способ их выполнения из-за какого-либо события, например, например, нажатие клавиши или какое-то событие в коде? Лучший пример того, что я хочу сделать, это CLI маршрутизатора. Где я могу найти такие примеры?
def main():
while(True):
initial_setup() #choose IPs to monitor
while(True):
do_some_work() # do monitor the IPs
Мне нужен некоторый слушатель в секундах, пока он обнаруживает нажатия клавиш, а затем я перехожу к начальной настройке, в то время как do_some_work работает и только после того, как я закончу дополнительные изменения в initial_setup, do_some_work перезапускается.
Извините, я нуб и не очень хорошо объясняю пробалы, потому что английский для меня не родной. Лучший пример из реальной жизни, который я могу назвать, это CLI роутера, вы можете настроить intreface, и пока роутер выполняет маршрутизацию в фоновом режиме.
Код для Sergio S:
import threading
import time
def hello():
while(True):
print("Hello")
time.sleep(2)
def hi():
while(True):
print("hi")
time.sleep(2)
def press_key():
a=input()
a=False
return a
def circle():
MrBoolean=True
while(MrBoolean):
thr=[]
thr.append(threading.Thread(target=hello))
thr.append(threading.Thread(target=hi))
thr.append(threading.Thread(target=press_key))
for i in thr:
i.start()
for i in thr:
i.join()
mrBoolean=thr[3]
def main():
while(True):
circle()
main()