作为初学者,很难用一句话来表达问题。但问题是:我有两个模块彼此相邻运行(使用 subprocess.Popen)。我想将 module1 中的 var 传递给 module2 中的函数。该函数仅在 module2 中更改一组全局变量。导入似乎不起作用,因为两个模块都在自己的主循环中运行。 (这似乎阻止了导入过程。) 任何提示。 谢谢,彼得
模块1.py
x=0
y=0
def changePar(v):
global x, y
x += v
y += v
While True:
#do something
print(x,y) #hopefully the changed values
模块2.py
From Module1 import changePar
m1 = 5
Module1.changePar(m1)
While True:
#do something
我怎样才能做到这一点,让第三个模块使用“管道”?
第三个模块:
from subprocess import Popen, PIPE
M1 = Popen(['python3', 'Module1.py'], stdin =PIPE)
M2 = Popen(['python3', 'Module2.py'], stdout=PIPE)
M1.stdin.write(M2.stdout.readline())
M1.stdin.flush()
模块1.py:
import os, sys
x=0
y=0
def changePar(v):
global x, y
x += v
y += v
os.set_blocking(sys.stdin.fileno(), False)
while True:
#do something
l = sys.stdin.readline()
if l: changePar(int(l))
print(x, y) # hopefully the changed values
模块2.py:
m1 = 5
print(m1, flush=True)