Python struct pack extrahieren

Das Python struct Modul ist in der Lage, Konvertierungen zwischen Python-Werten und C-Strukturen, die als Python Strings dargestellt werden, durchzuführen.

Python Struct

  • Das Python struct Modul kann zum Umgang mit binären Daten verwendet werden, die in Dateien, Datenbanken oder aus Netzwerkverbindungen stammen.
  • Es verwendet Format-Strings als kompakte Beschreibungen des Layouts der C-Strukturen und der beabsichtigten Konvertierung zu/von Python-Werten.

Funktionen

Es gibt fünf wichtige Funktionen im struct Modul – pack(), unpack(), calcsize(), pack_into() und unpack_from(). Bei all diesen Funktionen müssen wir das Format der Daten angeben, die in Binärdaten konvertiert werden sollen. Einige der beliebten Formatzeichen sind:

  • ?: boolean
  • h: short
  • l: long
  • i: int
  • f: float
  • q: long long int

Sie können die vollständige Liste der Formatzeichen hier erhalten. Lassen Sie uns die Funktionen des struct Moduls nacheinander betrachten.

Python struct.pack()

Diese Funktion packt eine Liste von Werten in eine String-Repräsentation des angegebenen Typs. Die Argumente müssen genau zu den Werten passen, die das Format erfordert. Lassen Sie uns schnell ein Beispiel für struct pack() ansehen:

import struct

var = struct.pack('hhl', 5, 10, 15)
print(var)
 
var = struct.pack('iii', 10, 20, 30)
print(var)

Python struct.unpack()

Diese Funktion entpackt den gepackten Wert in seine ursprüngliche Darstellung mit dem angegebenen Format. Diese Funktion gibt immer ein Tupel zurück, auch wenn es nur ein Element gibt. Lassen Sie uns schnell ein Beispiel für die struct unpack() Funktion ansehen:

import struct
var = struct.pack('hhl', 5, 10, 15)
print(var)
print(struct.unpack('hhl', var))

Python struct calcsize()

Diese Funktion berechnet und gibt die Größe der String-Repräsentation von struct mit einem gegebenen Format zurück. Die Größe wird in Bytes berechnet. Lassen Sie uns schnell ein Beispielcode-Snippet ansehen:

import struct
 
var = struct.pack('hhl', 5, 10, 15)
print(var)
print("Size of String representation is {}.".format(struct.calcsize('hhl')))

Python struct pack_into(), unpack_from()

Diese Funktionen ermöglichen es uns, Werte in einen String-Puffer zu packen und aus einem String-Puffer zu entpacken. Diese Funktionen wurden in Version 2.5 eingeführt.

import struct
# ctypes is imported to create a string buffer
import ctypes

# As shown in previous example
size = struct.calcsize('hhl')
print(size)

# Buffer 'buff' is created from ctypes
buff = ctypes.create_string_buffer(siz)

# struct.pack_into() packs data into buff and it doesn't return any value
# struct.unpack_from() unpacks data from buff, returns a tuple of values
print(struct.pack_into('hhl', buff, 0, 5, 10, 15))
print(struct.unpack_from('hhl', buff, 0))


Schlussfolgerung

Das ist alles für eine kurze Einführung in das Python struct Modul. Python struct pack extrahieren

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: