Hallo, guten tag,
Wie kann man bitte Byte-Daten in ein Array einlesen?
-------------------------
arraytyp = ctypes.c_int * 10
a = arraytyp()
f = open("d:/python39/programme-py/daten/255_daten.bin",'rb')
??? = f.read(10)
f.close()
Byte-Daten in ein Array einlesen.
- __blackjack__
- User
- Beiträge: 13922
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@funkheld: Warum ``read(10)``? Das geht doch überhaupt nicht auf. Falls das eigentlich 40 oder 80 sein sollte, je nach dem was `c_int` konkret bedeutet, dann haben Dateiobjekte eine `readinto()`-Methode, die man hier nutzen könnte.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
— Scott Bellware
- __blackjack__
- User
- Beiträge: 13922
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@funkheld: Falls Du ein nicht-funktionierendes Programm haben willst, welches gleich bei der ersten Zeile einen `TypeError` auslöst, kannst Du das auch so schreiben. Nicht dass das irgendwie sinnvoll wäre die Dateigrösse vorher zu ermitteln wenn man die Datei komplett einlesen will, aber machen kann man das natürlich.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
— Scott Bellware
@funkheld: Dateinamen schreibt man nicht mehrfach in den Programmcode. Falls sich der mal ändert, muss man erst alle Stellen finden. Statt dessen wird eine Konstante mit den Dateiname definiert.
Dateien öffnet man innerhalb eines with-Statements.
Warum benutzt Du ctypes? Zum Lesen von Binärdaten würde ich das struct-Modul verwenden. Was willst Du mit den Daten weiter machen?
Dateien öffnet man innerhalb eines with-Statements.
Warum benutzt Du ctypes? Zum Lesen von Binärdaten würde ich das struct-Modul verwenden. Was willst Du mit den Daten weiter machen?
Ich persönlich finde es ein bisschen erheiternd, dass exakt diese Fragestellungen vor rund 13 Jahren schon einmal gestellt wurden und die Antworten zu den aktuellen Themen merklich deckungsgleich sind.
Ich wollte das nur kurz anmerken
Ich wollte das nur kurz anmerken
- DeaD_EyE
- User
- Beiträge: 1205
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Code: Alles auswählen
buffer = array.array("B")
with open("d:/python39/programme-py/daten/255_daten.bin", "rb") as fd:
buffer.fromfile(fd, 256)
PS: `fd.readinto` funktioniert nicht mit einem leeren `array` oder `bytearray`.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server