【发布时间】:2016-04-06 03:46:04
【问题描述】:
我创建了一个 Python 脚本,它可以从管道(命名为 pipe1)中获取命令。您可以在 Pastebin 上找到脚本。
我用这个其他脚本测试了这个脚本:
import sys
fw = open("pipe1", "w" )
fw.write('fd\n')
fw.close()
它成功了。
现在我想用另一个 Python 脚本来控制脚本,如果我按下 w、a、s、d 或 p 并显示键,它可以在管道中写入我按。
在这个例子中,我只想打印我按下的键。稍后我将添加fw.write 命令写入管道,我之前测试过:
def key_inp(event):
print 'Key:', event.char
key_press = event.char
sleep_time = 0.030
while True:
try:
if key_press.lower() == 'w':
print "w"
elif key_press.lower() == 's':
print "s"
elif key_press.lower() == 'a':
print "a"
elif key_press.lower() == 'd':
print "d"
elif key_press.lower() == 'q':
print "q"
elif key_press.lower() == 'e':
print "e"
elif key_press.lower() == 'p':
print "stop"
except(KeyboardInterrupt):
print('Finished')
我的问题是,我编写的脚本(并使用 stackoverflow 成员进行了改进)在我打开它时立即关闭。
谁能解释我为什么,以及如何修复它,以便脚本一直保持打开状态,直到我用 Ctrl+c 中断它?
【问题讨论】:
-
key_press来自哪里?..在while循环和key_inp函数中是否相同? -
您提供的代码示例有一个未使用的局部变量,后来又是一个未分配的局部变量。您可以使用您尝试使用的实际示例脚本进行编辑吗?
标签: python input keyboard raspberry-pi robotics