我有在 while 循环中不断使用标准输出读取的代码,我想根据这个标准输出在 tkinter gui 上显示 2 个图像中的 1 个。标准输出数据以数组形式出现,用于决定 python gui 将显示 2 个图像中的哪一个。但是,我无法弄清楚在这种情况下如何让线程工作。这是没有线程的基本代码:
from subprocess import Popen, PIPE
print ("Opening...")
p = Popen ("C:\Program Files\Demo.exe", stdout=PIPE)
arr2 = []
arr3 = []
start = 0
dtct = 0
away = 0
chk = 0
sensitivity = 15
print ("Reading...")
while 1:
line = p.stdout.readline()
if not line: break
if line.find(':')!= -1 and len(line) > 4:
time = line.split(",")[1]
Ta= line.split(",")[2]
arr1 = [float(n) for n in line.split(',')[3:67]]
delta = [i - j for i, j in zip(arr1,arr2)]
deltarnd = [ round(elem, 2) for elem in delta ]
for index, item in enumerate(deltarnd):
if item > 3:
dtct = dtct +1
if item < -3:
away = away +1
if (dtct > sensitivity) and chk == 0:
print "hand detected"
chk = 1
if (away > sensitivity) and chk == 1:
print "hand moved away"
chk = 0
dtct=0
away=0
arr3=arr2
arr2=arr1
print ("EOP")