For example, I have a string like this(return value of subprocess.check_output):

>>> b'a string' b'a string' 

Whatever I did to it, it is always printed with the annoying b' before the string:

>>> print(b'a string') b'a string' >>> print(str(b'a string')) b'a string' 

Does anyone have any ideas about how to use it as a normal string or convert it into a normal string?

2

3 Answers

Decode it.

>>> b'a string'.decode('ascii') 'a string' 

To get bytes from string, encode it.

>>> 'a string'.encode('ascii') b'a string' 
7

If the answer from falsetru didn't work you could also try:

>>> b'a string'.decode('utf-8') 'a string' 

Please, see oficial encode() and decode() documentation from codecs library. utf-8 is the default encoding for the functions, but there are severals standard encodings in Python 3, like latin_1 or utf_32.