У меня есть два скрипта python, для аргументов давайте позвоним им A
и B
. Оба A
и B
содержат цикл while, который работает неограниченно. Они показывают прямые каналы двух разных устройств сбора данных. Script A
способен принимать нажатия клавиш. Теперь, что я хотел бы сделать, это сценарий B
, чтобы определить нажатие клавиши в скрипте A
. Каждый скрипт выполняется в другом терминале.Общайтесь между двумя сценариями. Передайте строку переменной из одного скрипта в другой.
Как я могу как можно быстрее общаться между двумя скриптами python? Как я могу передать string
или что-то подобное из сценария A
в сценарий B
без использования фиктивного файла? С фиктивным файлом я отношусь к файлу, который постоянно читается сценарием B
и написан скриптом A
при регистрации нажатия клавиши. Может кто-нибудь указать мне в правильном направлении?
Оба сценария показывают прямые передачи данных с использованием циклов while. Поэтому очень важно, чтобы ни один скрипт не останавливался или не ждал чего-то.
Сценарий A:
import sys
import numpy
import select
def heardEnter():
i, o, e = select.select([sys.stdin], [], [], 0.0001)
for s in i:
if s == sys.stdin:
input = sys.stdin.readline()
return True
return False
while True:
if heardEnter():
print "A: Pressed enter"
Сценарий B:
while True:
A_press_enter = None
if A_press_enter == "Enter":
print "B: Enter was pressed in script A"
Почему вы не можете поместить эти оба в один скрипт и, возможно, использовать поток? Действительно ли они должны быть в отдельных терминалах? –
ваш вопрос слишком широк, вы можете использовать любой [метод IPC] (https://en.wikipedia.org/wiki/Inter-process_communication), например, если оба скрипта используют 'select()' уже, тогда было бы удобно используйте сокет или трубу для связи. – jfs