[英]Send value of variable that is in a loop from one script to another script
我一直很乐意将变量从一个脚本发送到另一个脚本,并且很容易地完成了一些基本的事情,但是我陷入了困境,希望获得一些输入。
这是我的script1.py
import time
x = 0
while x < 100:
x = x+1
time.sleep(1)
这是我的script2.py
import subprocess
subprocess.Popen("python script1.py", shell=True)
from script1 import x
print(x)
其输出仅为100。
有没有一种方法可以在每次通过script2.py更新变量时打印变量x
?
所有这些的原因是我从脚本中的串行端口读取数据,但是我想在输入的任何时候都使用不同脚本中的输出。因此,实质上,只要有从变量中存储的串行端口中可用的数据,我希望将该变量传递给另一个脚本。
编辑:我有一个python脚本,其中该脚本从一个串行端口读取数据并记录数据。
话虽如此,我想要第二个脚本,该脚本可以获取包含第一个脚本中的数据的列表,以便为其他任务进行操作。
编辑2:我修改了代码,如下所示,但没有任何显示。
#script 1
import time
x = 0
while x < 100:
x = x+1
print(x)
time.sleep(1)
#script 2
import subprocess
proc = subprocess.Popen(['python','script1.py'],stdout=subprocess.PIPE)
while True:
line = proc.stdout.readline()
print(line)
main.py
from subprocess import Popen, PIPE
import sys
p = Popen(['py', 'client.py'], stdout=PIPE)
while True:
o = p.stdout.read(1)
if o:
sys.stdout.write(o.decode('utf-8'))
sys.stdout.flush()
print '*'
else: break
client.py
import time
for a in xrange(3):
time.sleep(a)
print a
出:
0*
*
*
1*
*
*
2*
*
*
我终于得到它的工作。 多亏与Vadim来回交流,我才能够了解其中的一些内容。 以下是我的代码。
script1.py:
import sys, time
x=0
while x<10:
print(x)
sys.stdout.flush()
x = x+1
time.sleep(1)
script2.py:
import subprocess
proc = subprocess.Popen('python script1.py',
shell=True,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
)
while True:
output = proc.stdout.readline()
if output == '':
break
else:
print output.rstrip()
输出:
0 #waits one second
1 #waits one second
2 #waits one second
.
.
.
8 #waits one second
9 #waits one second
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.