Seite 1 von 1

Ascii nach Binär

Verfasst: Dienstag 24. März 2009, 11:48
von alpha
Hallo Leute,

kann ich über eine Socketverbindung nur Strings schicken. Ich möchte aber Binärdaten (Bytearrays quasi) darüber verschicken. Gibts da eine eingebaute Funktion in Python oder wie kann ich das wandeln?

Danke für eure Antworten.

Grüße
alpha

Verfasst: Dienstag 24. März 2009, 12:07
von sma
Bis Python 3.0 sind Strings in Wirklichkeit Bytearrays und der Typ `unicode` beschreibt "echte" Strings die den Großteil des Unicode-Zeichensatzes abdecken. Erst ab Python 3.0 wurde das korrigiert. Du kannst also einfach mit `str`-Exemplaren arbeiten.

Stefan

Verfasst: Dienstag 24. März 2009, 13:19
von alpha
Hallo sma,

danke stimmt ja.. Wie sag ich es unter Python >2.5, daß
mein String ein Bytearray ist?

Grüße
alpha

Verfasst: Dienstag 24. März 2009, 13:25
von DasIch
@alpha In Python 2.6 hat sich dass nicht geändert... In Python 3 gibt es dafür `bytes`.

Verfasst: Dienstag 24. März 2009, 13:58
von alpha
Noch eine Frage...
Wenn ich nen String habe:
x = '1000'

und ich möchte ihn so haben:

x = '\x03\xe8'

(also hex('1000'))
Wie kann ich sowas bewekstelligen? Gibts da schon ne fertige Routine, oder muss ich mir das selbst zusammenschustern?

alpha

Verfasst: Dienstag 24. März 2009, 18:14
von BlackJack
@alpha: Da musst Du die Zeichenkette in eine Zahl umwandeln und kannst dann das `struct`-Modul verwenden.

Verfasst: Mittwoch 25. März 2009, 09:32
von alpha
@Blackjack
Super, das ist ja genau das was ich gesucht habe. Vielen Dank. Typisch Python... es gibt fast nichts was man selber noch programmieren muß, aber die Fülle von Modulen erschlägt einen halt manchmal :-)

Gruß
alpha