Python中文
首页
教程
问答
标签
搜索
登录
注册
python中的非阻塞raw_input()
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>经过一段时间的钻研,我仍然没有找到一个很好的答案,我希望这是一个相当普遍的需要。基本上,我需要一个主线程来执行“stuff”,直到它接收到输入,然后对该输入执行操作,然后返回到原始的“stuff”。每次我的问题似乎是我的程序执行似乎完全停止在原始输入,无论我在线程或其他地方调用它。警告一下,我对python还不是很在行,但我希望这不会太难实现。这是我在玩的东西(从我的另一个问题中,我的线程问题得到了轻松的回答)</p> <p>所以我试图写一个程序,寻找键盘按下,然后根据用户输入的内容在主程序中做一些事情。我试着在一个线程中运行键盘监听,然后比较主循环中变量中的内容,但是我似乎从来没有得到线程键盘输入。在下面的代码中,print may update行永远不会发生,只是main while循环中的else块。我需要做什么才能让主循环知道用户按下的键?</p> <pre><code>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 <a href="https://www.cnpython.com/pypi/keyboard" class="inner-link">keyboard</a> Input. Setting playing ID to keyboard input value" playingID = kbdInput else: print "No input from keyboard detected. Sleeping 2 seconds" time.sleep(2) </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您创建了一个线程,但忘记启动它:</p> <pre><code>listener = threading.Thread(target=kbdListener) listener.start() </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
想用靓汤抢夺价值
5 回答
想申请一份符合工作描述的简历吗
4 回答
想画网格,Python
5 回答
想白痴化我的Python战舰
7 回答
想看两列日期,但只上
10 回答
想看看我写的这个脚本读一个Fortran二进制fi吗
8 回答
想知道Django是如何实现ORM查询优化的吗
1 回答
想知道GeoDjango和地图服务吗
4 回答
想知道Image.resize操作在PIL文件中的详细工作方式吗
9 回答
想知道matplotlib pyplot为什么不调整边距
9 回答
想知道matplotlib颜色的颜色代码吗
5 回答
想知道pd.factorize,pd.get_dummies,sklearn.preprocessing.labeencoder和OneHotEncod之间的区别
6 回答
想知道property()在python中的实际用法吗
3 回答
想知道pyodidejs是如何工作的吗?
1 回答
想知道pyparsing==2.0.1的已完成处理依赖关系
2 回答
想知道ScikitLearn中的编码算法吗
3 回答
想知道VTK 5.04和VTK 5.4.2的vtkMassProperties差异吗
9 回答
想知道一个特定字符在一个特定句子中出现的次数吗
6 回答
想知道两个不同子集的重叠中有多少个对象吗
6 回答
想知道为什么is_素数函数的结果不正确吗
9 回答