发送命令以运行Python脚本

时间:2017-12-15 14:27:58

标签: python bash xdotool

我有一个运行openCV的Python脚本来播放视频。如果用户按下键盘上的“c”按钮,OpenCV将保存用户单击“c”按钮时显示的帧。

问题是,我想通过bash脚本自动保存 - 这意味着,在某些时候,我希望我的bash脚本“模拟”正在按下的“c”按钮,以便它可以拍摄。

我的(当然非常非pythonic)方法是使用xdotool制作一个小的bashscript。这就是它的样子:

pid=$(pgrep -f "python cv_player.py")
echo $pid
while IFS= read line; do
  if [[ "${line}" =~ (0x)([0-9a-z]+)([ ][- ][0-9]+[ ])([0-9]*) ]]; then
    winId="${BASH_REMATCH[1]}${BASH_REMATCH[2]}"
    pid="${BASH_REMATCH[4]}"
    if [[ "${pid}" -eq "${pid}" ]]; then
      WIND_IDS+=("${winId}")
    fi
  fi
done < <(wmctrl -lp)

if [ "${#WIND_IDS[@]}" -gt 0 ]; then
  xdotool key --window "${WIND_IDS[@]}" c 
fi

找到python文件的pid,找到窗口ID,并模拟按下的“c”按钮。

这不起作用。可能是因为我的bash错了......

无论如何,是什么这样做的pythonic方式? (没有处理套接字...... plz ......)。或者,如果你能告诉我我的bash脚本有什么问题,那也很酷。但我真的只是想知道正确的方法来蟒蛇化。我甚至不需要它按下按钮,可以是我发送的任何东西。

由于

0 个答案:

没有答案