我试图获取p5的输出,它们是mac地址,我想把它们存储到一个列表中。你知道吗
我知道mac地址是以字节类型打印的,但我无法按我想要的类型打印。你知道吗
p3 = subprocess.Popen(["iw", "dev", displayInt, "station", "dump"], stdout=subprocess.PIPE)
p4 = subprocess.Popen(["grep", "Station"], stdin=p3.stdout, stdout=subprocess.PIPE)
p5 = subprocess.Popen(["cut", "-f", "2", "-s", "-d", " "], stdin=p4.stdout, stdout=subprocess.PIPE)
for line in iter(p5.stdout.readline,''):
maclist.append(line.rstrip('\n'))
print(maclist)
我希望输出如下:
[a1:b2:c3:d4:e5:f6 , a1:b2:c3:d4:e5:f6]
我得到以下错误:
TypeError: a bytes-like object is required, not 'str'
你好像在用Python3。在python3中,
stdout
是字节流。如果要将其转换为字符串,请将encoding='utf8'
参数添加到Popen()
调用中,例如:对于其他调用,可能必须包含
encoding
参数。同时,代替:您可能想试试这个简短易懂的方法:
相关问题 更多 >
编程相关推荐