Автор оригинала: 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 структура модуль.