如何在Python中将<class bytes =“”>转换为数组或字符串?

时间:2016-07-26 09:52:43

标签: python-3.x

subprocess.popen将输出作为类字节返回,如下所示

  

b&#39; Caption FreeSpace Size \ r \ n \ r \ nC:807194624
  63869808640 \ r \ n \ n \ n \ n:\ r \ n \ r \ n   216847310848 2748779065344 \ r \ n \ n \ r \ n \ r \ n&#39;

如何删除\r\r\n的所有出现或如何将其转换为python字符串或数组

3 个答案:

答案 0 :(得分:1)

您可以删除translate之类的字符

b'Caption FreeSpace ... \r\r\n\r\r\n'.translate(None, b'\r\n')

导致

b'Caption FreeSpace Size C: 807194624 63869808640 D: Y: 216847310848 2748779065344 '  

如果您知道返回数据的编码,可能需要使用decode,它会为您提供一个字符串以供进一步处理。
例如,假设它是用utf-8编码的,你可以用它的默认值调用decode并直接调用它上面的split来用空白字符分割得到像这样的数组

b'Caption FreeSpace ... \r\r\n\r\r\n'.translate(None, b'\r\n').decode().split()  

结果

['Caption', 'FreeSpace', 'Size', 'C:', '807194624', '63869808640', 'D:', 'Y:', '216847310848', '2748779065344']

答案 1 :(得分:0)

my_str = "hello world"

将字符串转换为字节

my_str_as_bytes = str.encode(my_str)

将字节转换为字符串

my_decoded_str = my_str_as_bytes.decode()

答案 2 :(得分:0)

您可以通过以下方式打印它:

print(b'Caption FreeSpace ... \r\r\n\r\r\n'.decode())    

结果:

Caption FreeSpace ...