Обмен данными между двумя python скриптами
Суть
Первый скрипт запускается, ищет доступные последовательные порты и складывает в список, передаёт их другому скрипту, а далее перезагружается(не смог заставить serial.tools.list_ports искать порты в цикле).Второй скрипт принимает список и уже применяет в некоторых целях. Вопрос, как реализовать связь между скриптами, при условии, что один из них будет постоянно перезагружаться. Если есть возможность не перезагружать первый скрипт, а искать порты в цикле, так даже будет лучше
Вот пример кода:
import serial.tools.list_ports
port_list = []
def search_ports():
ports = serial.tools.list_ports.comports()
for port, desc, hwid in sorted(ports):
port_list.append(port)
search_ports()
Ответы (1 шт):
Как оказалось этот модуль верно сканирует все порты в цикле, ошибка была в последующей части кода, там я записал новые порты в другую переменную с похожим названием, которую не обновлял для виджета OptionMenu
Вот рабочий вариант:
import serial.tools.list_ports
port_list = []
def search_ports():
ports = serial.tools.list_ports.comports()
for port, desc, hwid in sorted(ports):
port_list.append(port)
search_ports()
# появился новый порт
# используем вторую функцию
def common():
ports = serial.tools.list_ports.comports() #
for port, desc, hwid in sorted(ports): # Инициализация портов(разделение строки)
if port_list.count(port) == 0:
port_list.append(port)
else:
continue
menu = your_option_menu["menu"]
menu.delete(0, "end")
for string in port_list:
menu.add_command(label=string, command=lambda value=string:your_string_var.set(value))
print(port_list)
common()