Python 3.x 从subprocess.Popen输出打印特定行
我正在使用Shairport Sync meta reader对airplay数据进行管道传输,目前正在使用以下Python代码返回字符串: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
#!/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()