#python #multithreading #loops #restart #raw-input
Вопрос:
У меня есть небольшая проблема со сценарием на Python, с которым я боролся в течение нескольких дней. В скрипте у меня есть функция, которая получает 2 входных текста. Я выполняю эту функцию и у меня есть другая функция (на основе кнопки GPiozero), которая сбрасывает/перезапускает первую функцию. Все работает нормально, за исключением того, что каждый раз, когда я использую функцию сброса, она объединяет 2 необходимые функции ввода.
Мой вопрос заключается в том , есть ли способ при запуске функции сброса запустить поток с нуля, не имея завершающих операторов ввода.
stop = False while not stop: resetbtn.when_pressed = reset def reset(): t = threading.Thread(target = Sched,name = 'thread') t.start() def Sched(): schedloop = True while schedloop: del tno_array[:] SchedLight.off() TnoLight.off() schedid = input(" Enter Schedule Number:") cursor.execute('EXEC [dbo].[Mixing_Racking_GetSchedule] @Schedid =' schedid) row = cursor.fetchall() if row: print('Light 1 On') SchedLight.on() for i in row: tno_array.append(i[2]) for i in tno_array: print(i) Tno() break else: print("No Schedule Number Found ") def Tno(): ticketloop = True while ticketloop: tno = input("Enter Ticket Number:") print('Tno: ' tno) cursor.execute('SELECT * FROM palletweight where trash =0 and tno=' tno) row = cursor.fetchall() if row: for i in row: for a in tno_array: if a == i[0]: updatePalletweight(tno) print ("Matching " str(i[0]) " " str(a)) TnoLight.on() ticketloop = False input("Press Reset Button") else: print("Ticket Doesn't Match Required List") else: print("No Ticket Number Found ")