Converter bytes em uma string?
Estou usando este código para obter saída padrão de um programa externo:
>>> from subprocess import *
>>> command_stdout = Popen(['ls', '-l'], stdout=PIPE).communicate()[0]
O método communic () retorna uma matriz de bytes:
>>> command_stdout
b'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file1\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file2\n'
No entanto, eu gostaria de trabalhar com a saída como uma string Python normal. Para que eu pudesse imprimi-lo assim:
>>> print(command_stdout)
-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file1
-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file2
Eu pensei que é o que o binascii.b2a_qp () é para, mas quando tentei, obtive o mesmo array de bytes novamente:
>>> binascii.b2a_qp(command_stdout)
b'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file1\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file2\n'
Alguém sabe como converter o valor de bytes novamente em string? Quero dizer, usando as "baterias" em vez de fazê-lo manualmente. E eu gostaria que ficasse bem com o Python 3.