web-dev-qa-db-fra.com

Lire stdin comme binaire

J'ai du code qui ouvre et lit un fichier binaire.

with open (file, mode="rb") as myfile:
    message_string=myfile.read()
    myfile.close

Je dois maintenant faire la même chose en lisant depuis stdin. Mais je n'arrive pas à comprendre comment lire le binaire.

L'erreur indique uniquement des chaînes d'octets.
Aucune suggestion?

24
BeMy Friend

Dans Python 3, si vous voulez lire les données binaires de stdin, vous devez utiliser son attribut buffer:

import sys

data = sys.stdin.buffer.read()

On Python 2, sys.stdin.read() renvoie déjà une chaîne d'octets; il n'est pas nécessaire d'utiliser buffer.

41
icktoofay