149 votes

Imprimer sans le préfixe 'b' pour les octets en Python 3

Comment imprimer un bytes sans la chaîne b' dans Python 3 ?

>>> print(b'hello')
b'hello'

3voto

simo54 Points 169

Je suis un peu en retard, mais pour Python 3.9.1, cela a fonctionné pour moi et a supprimé le préfixe -b :

print(outputCode.decode())

1voto

Arkelis Points 813

Utilice decode() au lieu de encode() pour convertir les octets en chaîne de caractères.

>>> import curses
>>> print(curses.version.decode())
2.2

0voto

C'est tellement simple... (Avec cela, vous pouvez encoder les octets du dictionnaire et de la liste, puis vous pouvez les stringifier en utilisant json.dump / json.dumps)

Il suffit d'utiliser la base64

import base64

data = b"Hello world!" # Bytes
data = base64.b64encode(data).decode() # Returns a base64 string, which can be decoded without error.
print(data)

Il y a des octets qui ne peuvent pas être décodés par défaut (les images en sont un exemple), donc base64 va encoder ces octets en octets qui peuvent être décodés en chaîne, pour récupérer les octets il suffit d'utiliser

data = base64.b64decode(data.encode())

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X