Рубрики
Без рубрики

Python Struct Pack, распаковать

Python Struct, Python Struction Pack, Python Struck Discack, Structule Module, Python Struction Пример Учебника, MASCSIZE (), PUC_INTO (), UPCACK_FROM Строковый буфер

Автор оригинала: Pankaj Kumar.

Модуль Python Struck Module способен выполнять преобразования между значениями Python и C st strens, которые представлены как строки Python.

Python Struct.

  • Модуль Python Struck Module может использоваться при обработке двоичных данных, хранящихся в файлах, базе данных или из сетевых подключений и т. Д.
  • Он использует форматические строки в качестве компактных описаний макета структур C и предполагаемое преобразование в/из значения Python.

Функции структуры Python

В модуле Structule есть пять важных функций – пакет () , распаковать () , CALSSIZE () , pack_into () и Unpack_from () Отказ Во всех этих функциях мы должны предоставить формат данных, которые будут преобразованы в двоичный.

Некоторые из популярных символов формата:

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

Вы можете получить полный список символов формата здесь Отказ Начнем смотреть в структурный модуль функции один за другим.

Python struct.pack ()

Эта функция упаковывает список значений в строковое представление указанного типа. Аргументы должны соответствовать значению, требуемыми именно форматом. Давайте быстро посмотрим на пример Struct Pack ():

import struct

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

Когда мы запускаем этот скрипт, мы получаем следующее представление:

Обратите внимание, что «B» в выходных сигналах для двоичного.

Python struct.unpack ()

Эта функция распаковывает упакованное значение в исходное представление с указанным форматом. Эта функция всегда возвращает кортеж, даже если есть только один элемент. Давайте быстро посмотрим на структуру распаковать () пример функции:

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

Когда мы запускаем этот сценарий, мы вернемся нашему оригинальному представлению: четко, мы должны сообщить интерпретателю Python формат, который нам нужно распаковать значения.

Python Struct Carcsize ()

Эта функция рассчитывает и возвращает размер строкового представления структуры с заданным форматом.

Размер рассчитывается в терминах байтов. Давайте быстро посмотрим на пример фрагмента кода:

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 ()

Эти функции позволяют нам упаковать значения в строковый буфер и распаковать из строкового буфера. Эти функции вводятся в версии 2.5.

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))

Когда мы запускаем этот скрипт, мы получаем следующее представление:

Это все для короткого введения Python структура модуль.