0

while ループで常に stdout を使用して読み取るコードがあり、この stdout に基づいて tkinter GUI に 2 つの画像のうちの 1 つを表示したいと考えています。stdout データは、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")
4

0 に答える 0