Совместное использование переменных между подпроцессами Python - PullRequest
2 голосов
/ 07 ноября 2019

У меня есть программа Python с именем read.py, которая каждую секунду читает данные из последовательной связи, и другая программа на языке Python calculate.py, которая должна принимать значения в реальном времени из read.py.

Использование subprocess.popen('read.py',shell=True) Я могу запустить read.py из calculate.py

Могу ли я узнать, как читать или использовать значение из read.py в calculate.py? Поскольку значение меняется каждую секунду, я не понимаю, как действовать дальше, сохраняя значение в регистрах или типе потребителя производителя и т. Д.

, например: from import datetime при использовании strftime %s, дается второе значениеКак использовать ту же технику, чтобы использовать переменную из другого скрипта?

Ответы [ 2 ]

1 голос
/ 07 ноября 2019

Я могу предложить записать значения в файл .txt для последующего чтения

0 голосов
/ 07 ноября 2019

Если мы не говорим о ситуации, когда Calculate.py является дочерним процессом read.py, у нас есть несколько параметров:

  1. read.py записывает результаты в некоторый файл и проверяет Calc.pyвремя от времени, чтобы найти новые строки,
  2. использовать некоторую базу данных SQL, такую ​​как SQLITE3 или более тяжелую опцию, такую ​​как MySQL, PostgreSQL и многие другие;
  3. использовать какое-либо решение NoSQL, не могу много сказать опотому что не работал с MongoDD, CElery и т. д.
  4. используйте библиотеку сокетов, read.py будет отправителем, а Calculate.py будет сервером, это наиболее сложно в смысле кодирования, так как вам нужно понятьсокеты и, возможно, модули потоков - зависит от решения

Если речь идет о главном и дочернем элементах в случае многопроцессорного модуля, просто используйте некоторый примитивный объект для связи между процессами, такими как очередь.

Гнезда

...