【发布时间】:2015-08-04 05:20:32
【问题描述】:
我有一个 python 脚本,它允许我使用简单的网络服务器 (Flask) 从我的手机与我的 Rapsberry Pi 进行交互。
在这个脚本中,我可以调用 omxplayer 来播放媒体文件,我通过这样的命令来做到这一点:
Popen(['omxplayer '+filePath], shell=True, stdin=None, stdout=None, stderr=None, close_fds=True)
这工作正常,但我希望能够通过发送关键命令与此过程进行交互。当 omxplayer 运行时,您可以按空格键播放/暂停,箭头键向前/向后跳等。我想从我的 python 脚本以编程方式发送这些键盘输入,而不是要求一个人在键盘上手动按下它们。
在用 Python 打开后,如何从 Python 向该进程发送按键命令?
另外,如果有另一个正在运行的 omxplayer 实例 not 目前正在从此 Python 脚本运行,我如何从 Python 中检测到?例如,如果 omxplayer 被调用并从某人通过 ssh 连接运行,我如何在 python 脚本中检测到这一点并在调用我自己的 omxplayer 进程之前终止该进程?
【问题讨论】:
-
看看psutils。
-
所以你想检测并杀死正在被用户使用的正在运行的进程?这似乎不礼貌。
-
psutils 可能有助于终止进程,但我想做的主要事情是将键盘输入发送到脚本打开的进程。我知道杀死其他人正在做的事情是不礼貌的,但它对于 Rapsberry Pi 并且一次只能运行该程序的 1 个实例而不会导致一切崩溃,所以这是必要的。