Ho una stringa ASCII = "abcdefghijk". Voglio scrivere questo in un file binario in formato binario usando python.Scrittura di una stringa ASCII come binario in python
Ho cercato seguente:
str = "abcdefghijk"
fp = file("test.bin", "wb")
hexStr = "".join((("\\x%s") % (x.encode("hex"))) for x in str)
fp.write(hexStr)
fp.close()
Tuttavia, quando apro il test.bin vedo il seguente in formato ASCII anziché binario.
\x61\x62\x63\x64\x65\x66\x67
Lo capisco perché per due barre qui ("\\ x% s"). Come posso risolvere questo problema? Grazie in anticipo.
Aggiornamento:
In seguito mi dà il risultato atteso:
file = open("test.bin", "wb")
file.write("\x61\x62\x63\x64\x65\x66\x67")
file.close()
Ma come faccio a raggiungere questo obiettivo con "abcdef" stringa ASCII. ?
Tu * molto attentamente * codifica i caratteri come esadecimale - perché ti aspetti di vedere qualcos'altro? – jonrsharpe
Quale risultato ti aspettavi allora? Non sono sicuro di aver capito cosa sia la * modalità binaria *, o anche cosa usi la notazione '\ xhh' di Python (ed è solo * sintassi *, un modo per produrre un valore, non il valore stesso). –
@jonrsharpe, voglio scrivere "\ x61 \ x62 \ x63 \ x64 \ x65 \ x66 \ x67" come binario su test.bin (non come stringa ascii). Come lo posso fare? E infine il test.bin dovrebbe essere un file binario. – aMa