试图检查process.communicate()的值

时间:2018-04-07 17:23:33

标签: python raspberry-pi subprocess

我在从python脚本中读取返回命令的值时遇到了一些问题。这首想法是在播放歌曲时点亮一个LED,并在歌曲停止或暂停时关闭LED。

#!/usr/bin/env python

import RPi.GPIO as GPIO
import time
import subprocess

ledpin = 18

GPIO.setmode(GPIO.BCM)
GPIO.setup(ledpin, GPIO.OUT)

try:
 while True:
   process = subprocess.Popen("mpc status|grep -o playing", stdout=subprocess.PIPE, shell=True)
   output = process.communicate()[0]

   if output == "playing" : #if output is playing
    print "Song Playing"
    GPIO.output(ledpin,GPIO.HIGH)

   else : #output is anything else 
    print "Waiting for music"
    GPIO.output(ledpin,GPIO.LOW)

   time.sleep(1)
except KeyboardInterrupt:
  GPIO.cleanup()

它打印变量输出,显示为"播放"完全符合预期,但它从未陷入过if循环 - 我只看到"等待音乐"。我在这做错了什么?感谢您的帮助。

0 个答案:

没有答案