Python 3.x 从subprocess.Popen输出打印特定行

Python 3.x 从subprocess.Popen输出打印特定行,python-3.x,Python 3.x,我正在使用Shairport Sync meta reader对airplay数据进行管道传输,目前正在使用以下Python代码返回字符串: #!/usr/bin/python import subprocess cmd = "shairport-sync-metadata-reader < /tmp/shairport-sync-metadata" proc = subprocess.Popen(cmd,stdout=subprocess.PIPE,shell=True) while

我正在使用Shairport Sync meta reader对airplay数据进行管道传输,目前正在使用以下Python代码返回字符串:

#!/usr/bin/python
import subprocess
cmd = "shairport-sync-metadata-reader < /tmp/shairport-sync-metadata"
proc = subprocess.Popen(cmd,stdout=subprocess.PIPE,shell=True)

while True:
  line = proc.stdout.readline()
  print (line)

#   if line != '':
#      wordKeys = ["Artist", "Title", "Album"]
#     lineNow = line.rstrip()
#       for key in wordKeys:
#         if key in lineNow:
#          print (lineNow)
#    else:
#      break
我的问题是如何将打印输出减少到与艺术家、曲目和唱片集相关的行的值?

这些是字节而不是字符串,请参见示例

字节文本总是以“b”或“b”作为前缀;它们产生一个 字节类型而不是str类型的实例。他们可能只是 包含ASCII字符;数值为128或更大的字节 必须用转义来表示

您可以使用
decode
将它们转换为字符串:

line = proc.stdout.readline().decode()

非常感谢,效果非常好。我一直在努力使输出更进一步。
line = proc.stdout.readline().decode()