Écrit une chaîne de caractères ASCII en binaire en python

J'ai une chaîne de caractères ASCII = "abcdefghijk". Je veux écrire cela dans un fichier binaire au format binaire à l'aide de python.

J'ai essayé suivantes:

str  = "abcdefghijk"
fp = file("test.bin", "wb")
hexStr = "".join( (("\\x%s") % (x.encode("hex"))) for x in str)
fp.write(hexStr)
fp.close()

Cependant, lorsque j'ouvre le test.bin je vois les suivants au format ascii au lieu de binaire.

\x61\x62\x63\x64\x65\x66\x67

Je le comprends parce que pour les deux barres obliques ici ("\\x%s"). Comment pourrais-je résoudre ce problème? Merci à l'avance.

Mise à jour :

Suivant me donne le résultat attendu:

file = open("test.bin", "wb")
file.write("\x61\x62\x63\x64\x65\x66\x67")
file.close() 

Mais comment puis-je réaliser cela avec "abcdef" chaîne de caractères ASCII. ?

Vous très soigneusement encodage des caractères hex - pourquoi attendez-vous à voir quelque chose d'autre?
Quelle sortie, vous attendiez-vous alors? Je ne suis pas sûr de comprendre ce que le mode binaire t, ou même ce que Python utilise \xhh notation (et c'est juste syntaxe, un moyen de produire de la valeur, et non pas la valeur elle-même).
Je veux écrire "\x61\x62\x63\x64\x65\x66\x67" que les binaires de test.bin non pas en tant que chaîne de caractères ascii). Comment puis-je le faire? Et enfin le test.bin doit être un fichier binaire.
tous les fichiers sont binaires. L'ouverture d'un fichier en mode texte ne permet à un traitement spécial des retours à la ligne (et sur Windows, les causes 0x0a être interprété comme la fin du fichier). En tant que tel, il suffit d'écrire 'abcd'. Sur Python 3, vous devez encoder le texte d'octets avec str.encode('ascii').
Toutefois, un fichier binaire est pas une séquence de caractères hexadécimaux! Certains hex rédacteurs affichage contenu de l'hexagone, mais c'est juste represetation, et non pas la valeur réelle dans le fichier.

OriginalL'auteur aMa | 2015-03-19