如何使用键输入连续控制Python脚本?

时间:2016-01-01 18:28:53

标签: python input keyboard raspberry-pi robotics

我创建了一个Python脚本,可以从管道(名为pipe1)获取命令。您可以在Pastebin上找到脚本 我用另一个脚本测试了脚本:

import sys

fw = open("pipe1", "w" )

fw.write('fd\n')
fw.close()

并且有效。

现在我想用另一个Python脚本控制脚本,如果我按wasd或{{ 1}}并显示我按下的按键。

在这个例子中,我只想打印我按下的键。我稍后会添加p命令来写入管道,我之前测试过:

fw.write

我的问题是,当我打开它时,我写的脚本(以及使用stackoverflow成员改进的脚本)会立即关闭。

任何人都可以解释我为什么,以及我如何解决它以便脚本保持打开状态直到我用Ctrl + c打断它?

1 个答案:

答案 0 :(得分:2)

编辑:这个答案依赖于安装readchar模块。您可以通过pip:pip install readchar安装它。

您尝试使用的代码没有任何功能:您只定义一个函数,但从不调用它。最重要的是,它包含缩进错误。

你想要达到的目标,但用点作为结束键:

import readchar

while True:
    key = readchar.readkey()
    key = key.lower()
    if key in ('wsadqe'):
        print 'Key:', key
    elif key == 'p':
        print "stop"

    sleep_time = 0.030

    if key == '.':
        print "finished"
        break