Mam ciąg znaków ASCII = "abcdefghijk". Chcę napisać to do pliku binarnego w formacie binarnym przy użyciu Pythona.Zapisywanie łańcucha ASCII jako pliku binarnego w pythonie
Próbowałem następujące:
str = "abcdefghijk"
fp = file("test.bin", "wb")
hexStr = "".join((("\\x%s") % (x.encode("hex"))) for x in str)
fp.write(hexStr)
fp.close()
Jednak, kiedy otworzyć test.bin widzę następujące w formacie ASCII zamiast binarnego.
\x61\x62\x63\x64\x65\x66\x67
Rozumiem, ponieważ za dwa ukośniki tutaj ("\\ x% s"). Jak mogę rozwiązać ten problem? Z góry dziękuję.
Aktualizacja:
następstwie daje mi oczekiwany wynik:
file = open("test.bin", "wb")
file.write("\x61\x62\x63\x64\x65\x66\x67")
file.close()
Ale jak mogę to osiągnąć z "abcdef" łańcucha ASCII. ?
Jesteś * bardzo ostrożny * kodujesz znaki jako szesnastkowy - dlaczego spodziewasz się zobaczyć cokolwiek innego? – jonrsharpe
Jakiej mocy wyjściowej oczekiwałeś? Nie jestem pewien, czy rozumiesz, jaki tryb binarny * działa *, czy nawet to, co Python używa notacji '\ xhh' dla (i jest to po prostu * składnia *, sposób na wytworzenie wartości, a nie sama wartość). –
@jonrsharpe, chcę napisać "\ x61 \ x62 \ x63 \ x64 \ x65 \ x66 \ x67" jako binarne do test.bin (nie jako ciąg znaków ASCII). Jak mogę to zrobić? I na koniec plik test.bin powinien być plikiem binarnym. – aMa