Python Linux:MPC当前歌曲输出

Python Linux:MPC当前歌曲输出,python,linux,Python,Linux,我尝试在我的互联网收音机上定制输出。(mpd/mpc) getInfo.py: #!/bin/bash opt=$@ mpc $opt &> /dev/null station="`mpc --format \"[%name%]\" | head -n 1`" title="`mpc --format \"[%title%]\" | head -n 1`" vol="`mpc | head -n 2 | tail -n 1 | awk {'print $4'}`" echo $

我尝试在我的互联网收音机上定制输出。(mpd/mpc)

getInfo.py:

#!/bin/bash
opt=$@
mpc $opt &> /dev/null

station="`mpc --format \"[%name%]\" | head -n 1`"
title="`mpc --format \"[%title%]\" | head -n 1`"
vol="`mpc | head -n 2 | tail -n 1 | awk {'print $4'}`"

echo $station
echo $title
echo "Volume: "${vol//[()_]/}
并保存输出witch-n getInfo.py>radio.log

输出格式如下:

Amazing Smooth and Jazz
Koop - Koop Island Blues
Volume: 100%
所以我需要每次输出更改时在shell上显示输出。 如何做到这一点?

要开始:

#!/usr/bin/python3
from subprocess import Popen, PIPE

last_output = ""
while(1):
    proc = Popen(["mpc"], stdout=PIPE)
    output, retval = proc.communicate()
    if not output == last_output:
        print(output.decode('ascii'))
    last_output = output

我将把微调输出留给您。

如果您只希望歌曲输出在更改时更新,
mpc
具有命令
current
,该命令具有一个
--wait
选项,该选项告诉mpc在显示结果之前阻止下一首歌曲,这允许您在其上循环。从那里你可以用它更新任何你想要的软件

例如:


while:;do notify send--currency=low-i“音频耳机”“$(mpc当前--等待)”;完成&

与您的问题没有直接关系,但为什么bash脚本有一个.py扩展名?与您的问题相关:您可以使用watch在shell中定期显示输出…但我只需要在输出中的某些内容更改显示格式时才需要输出?我不能在popen中使用像mpc | head-2这样的命令。这是可能的?我确信这在某种程度上是可能的,但不幸的是,我不知道如何从python链接管道。您已经有了一个创建所需输出的bash脚本,请尝试调用它,而不是从popen调用mpc。