在python中读取线程变量时遇到问题

2024-09-22 16:31:17 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我试图编写一个程序,查找键盘按键,然后根据用户输入的内容在主程序中执行某些操作。我试图在线程中运行键盘监听,然后比较主循环中变量中的内容,但我似乎从未获得线程键盘输入。在下面的代码中,print-maybe更新行从未发生,只是主while循环中的else块。我需要做什么才能让我的主循环知道用户按下的键

import threading
import time

kbdInput = ''
playingID = ''

def kbdListener():
    global kbdInput
    kbdInput = rawInput()
    print "maybe updating...the kbdInput variable is: ",kbdInput

listener = threading.Thread(target=kbdListener)

while True:
    print "kbdInput: ",kbdInput
    print "playingID: ",playingID
    if playingID != kbdInput:
        print "Recieved new keyboard Input. Setting playing ID to keyboard input value"
        playingID = kbdInput
    else:
        print "No input from keyboard detected. Sleeping 2 seconds"
    time.sleep(2)

Tags: 用户import内容inputtime键盘elseprint
1条回答
网友
1楼 · 发布于 2024-09-22 16:31:17

您需要在创建listener之后通过调用listener.start()来启动侦听器

listener = threading.Thread(target=kbdListener)
listener.start()

相关问题 更多 >