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 Global: информация, обучение, ресурсы
Фиксированный (fixed) - примеры и особенности
Как подключить JS к HTML
getElementById JS: практическое руководство и примеры
Деление питона: простые и эффективные способы
Как перевернуть строку в Python
Matlab subplot - создание и управление графиками
<h1>Admin Script - удобное решение для администрирования
Настройка стилей текста с помощью CSS