Ascii nach Binär

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

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
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

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
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Hallo sma,

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

Grüße
alpha
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

@alpha In Python 2.6 hat sich dass nicht geändert... In Python 3 gibt es dafür `bytes`.
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

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
BlackJack

@alpha: Da musst Du die Zeichenkette in eine Zahl umwandeln und kannst dann das `struct`-Modul verwenden.
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

@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
Antworten