web-dev-qa-db-fra.com

Ajoutez le préfixe "b" à la variable python?

L'ajout du préfixe "b" à une chaîne le convertit en octets:

b'example'

Mais je ne peux pas comprendre comment faire cela avec une variable. En supposant string = 'example', aucun de ces éléments ne semble fonctionner:

b(string)
b string
b'' + string

Existe-t-il un moyen simple de procéder?

32
zombio
# only an example, you can choose a different encoding
bytes('example', encoding='utf-8')

En Python3:

Les littéraux d'octets sont toujours préfixés par "b" ou "B"; ils produisent une instance du type bytes au lieu du type str. Ils ne peuvent contenir que des caractères ASCII; les octets d'une valeur numérique de 128 ou plus doivent être exprimés avec des échappements.

En Python2:

Un préfixe de 'b' ou 'B' est ignoré dans Python 2; cela indique que le littéral devrait devenir un littéral d'octets dans Python 3.

En savoir plus sur les octets ():

octets ([source [ encodage [ erreurs]]])

Renvoie un nouvel objet "bytes", qui est une séquence immuable d'entiers dans la plage 0 <= x <256. bytes est une version immuable de bytearray - il a les mêmes méthodes non mutantes et le même comportement d'indexation et de découpage.

Par conséquent, les arguments du constructeur sont interprétés comme pour bytearray ().

Les objets Bytes peuvent également être créés avec des littéraux, voir Littéraux String et Bytes.

31
Leonardo.Z

Utilisez bytes() :

>>> bytes("hello", encoding="ascii")
b'hello'
5
Tim Pietzcker
string = bytes(string, encoding= 'utf-8')

où "chaîne" est votre variable.

2
a_ran

Ou utilisez la méthode bytes.decode() pour convertir en string (en utilisant un encodage donné):

>>> b'hello'.decode('utf-8')
'hello'

La conversion opposée est str.encode() pour convertir un string en bytes:

>>> 'hello'.encode('utf-8')
b'hello'
1
Simon G.

J'ai vérifié cela depuis longtemps et je pense que la meilleure façon de convertir une chaîne en variable est d'utiliser vars ()

vars () ['nom de variable'] = valeur à affecter

vars()['created_variable'] = 1
print(created_variable)
>> 1
0
saias