Add "b" prefix to python variable?
PythonPython 3.xBytePython Problem Overview
Adding the prefix "b" to a string converts it to bytes:
b'example'
But I can't figure out how to do this with a variable. Assuming string = 'example'
, none of these seem to work:
b(string)
b string
b'' + string
Is there a simple way to do this?
Python Solutions
Solution 1 - Python
# only an example, you can choose a different encoding
bytes('example', encoding='utf-8')
In Python3: > Bytes literals are always prefixed with 'b' or 'B'; they produce an > instance of the bytes type instead of the str type. They may only > contain ASCII characters; bytes with a numeric value of 128 or greater > must be expressed with escapes. >
In Python2:
> A prefix of 'b' or 'B' is ignored in Python 2; it indicates that the > literal should become a bytes literal in Python 3.
More about bytes():
> bytes([source[, encoding[, errors]]]) > > Return a new “bytes” object, which is an immutable sequence of > integers in the range 0 <= x < 256. bytes is an immutable version of > bytearray – it has the same non-mutating methods and the same indexing > and slicing behavior. > > Accordingly, constructor arguments are interpreted as for bytearray(). > > Bytes objects can also be created with literals, see String and Bytes > literals.
Solution 2 - Python
Use bytes()
:
>>> bytes("hello", encoding="ascii")
b'hello'
Solution 3 - Python
string = bytes(string, encoding= 'utf-8')
where 'string' is your variable.
Solution 4 - Python
Or use the bytes.decode()
method to convert to string
(using a given encoding):
>>> b'hello'.decode('utf-8')
'hello'
The opposite conversion is str.encode()
to convert a string
to bytes
:
>>> 'hello'.encode('utf-8')
b'hello'
Solution 5 - Python
I have checked for this for long time and i think the best way to convert a string into a varible is using vars()
vars()['variable name'] = value to assign
vars()['created_variable'] = 1
print(created_variable)
>> 1