Python struct: работа с бинарными данными

Python struct - это модуль в языке программирования Python, который предоставляет функциональность для работы с бинарными данными. Он позволяет выполнять упаковку (pack) и распаковку (unpack) значений в бинарный формат, а также манипулировать байтами.

Основными функциями модуля struct являются pack() и unpack(). Функция pack() позволяет упаковывать значения в бинарный формат, а функция unpack() позволяет распаковывать бинарные данные и получать их в удобном для работы виде.

Давайте рассмотрим некоторые примеры использования модуля struct.

1. Упаковка значения:

<pre><code><span class="hljs-keyword">import struct

# Упаковка целого числа
value = 42
packed_data = struct.pack('i', value)
print(packed_data)  # Вывод: b'*\x00\x00\x00'

# Упаковка строки
string = 'Hello, world!'
packed_data = struct.pack('12s', string.encode('utf-8'))
print(packed_data)  # Вывод: b'Hello, world!'
</code></pre>

2. Распаковка данных:

<pre><code><span class="hljs-keyword">import struct

# Распаковка целого числа
packed_data = b'*\x00\x00\x00'
unpacked_value = struct.unpack('i', packed_data)
print(unpacked_value[0])  # Вывод: 42

# Распаковка строки
packed_data = b'Hello, world!'
unpacked_string = struct.unpack('12s', packed_data)
print(unpacked_string[0].decode('utf-8'))  # Вывод: Hello, world!
</code></pre>

3. Использование формата данных:

<pre><code><span class="hljs-keyword">import struct

# Пакет состоящий из двух целых чисел и одного числа с плавающей запятой
packed_data = struct.pack('ii f', 42, -10, 3.14)
print(packed_data)  # Вывод: b'*\x00\x00\x00\x0a\x00\x00\x00\xcd\xcc\x0c@'

# Распаковка данных с несколькими значениями
unpacked_values = struct.unpack('ii f', packed_data)
print(unpacked_values)  # Вывод: (42, -10, 3.140000104904175)
</code></pre>

Как видно из примеров, при упаковке и распаковке необходимо указывать формат данных, которым будут представлены значения. Формат указывается в виде строки, в которой каждый символ представляет тип данных и его размер.

Модуль struct также предоставляет другие функции, такие как calcsize() для подсчета размера байтов, iter_unpack() для последовательной распаковки байтов и т. д.

В итоге, модуль struct в Python представляет мощный инструмент для работы с бинарными данными. Он позволяет удобно упаковывать и распаковывать значения, манипулировать байтами и работать с различными структурами данных. Это особенно полезно при работе с сетевыми протоколами, файловыми форматами и другими бинарными данными.

Похожие вопросы на: "python struct "

Python append - добавление элементов в список с помощью метода append()
Python Super - улучшенная версия легендарного языка программирования
Helvetica Neue: стильный и современный шрифт для вашего сайта
Ключевое слово "this" в JavaScript
Конвертация из формата PNG в SVG
Кодирование JSON: основы работы и преимущества использования
Roboto Google Fonts - стильные шрифты для вашего сайта
Linux Clear - полное руководство по очистке системы в Linux
Изучаем оператор break в JavaScript
SQL очистить таблицу - методы и инструменты для удаления данных