python非阻塞输入_python中的非阻塞raw_input()

经过一段时间的钻研,我仍然没有找到一个很好的答案,我希望这是一个相当普遍的需要。基本上,我需要一个主线程来执行“stuff”,直到它接收到输入,然后对该输入执行操作,然后返回到原始的“stuff”。每次我的问题似乎是我的程序执行似乎完全停止在原始输入,无论我在线程或其他地方调用它。警告一下,我对python还不是很在行,但我希望这不会太难实现。这是我在玩的东西(从我的另一个问题中,我的线程问题得到了轻松的回答)

所以我试图写一个程序,寻找键盘按下,然后根据用户输入的内容在主程序中做一些事情。我试着在一个线程中运行键盘监听,然后比较主循环中变量中的内容,但是我似乎从来没有得到线程键盘输入。在下面的代码中,print may update行永远不会发生,只是main 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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值