Можно ли в Python создавать бинарные файлы? Конечно можно.
Для этого в Python есть следующие инструменты:
▫️ тип данных bytes и bytearray
▫️ открытие файла в режиме wb (write binary) или rb (read binary)
▫️ модуль struct
Про модуль struct поговорим в первую очередь.
Файл в формате JSON или Yaml внутри себя содержит разметку данных. Всегда можно определить где список начался а где закончился. Где записана строка а где словарь. То есть формат записи данных содержит в себе элементы разметки данных.
В binary-файле данные не имеют визуальной разметки. Это просто байты, записанные один за другим. Правила записи и чтения находятся вне файла.
Модуль struct как раз и помогает с организацией данных в таком файле с помощью определения форматов записи для разных частей файла.
Модуль struct преобразует Python-объекты в массив байт, готовый к записи в файл и имеющий определённый вид.
Для этого всегда следует указывать формат преобразования (или, как оно здесь называется - запаковки).
Формат нужен для того, чтобы выделить достаточное количество байт для записи конкретного типа объекта. В последствии с помощью того же формата будет производиться чтение.
При этом следует помнить что мы говорим о типах языка С а не Python.
Именно формат определяет, что записано в конкретном месте файла, число, строка или что-то еще.
Вот какие токены формата у нас есть.
Помимо этого, первым символом можно указать порядок байтов. На разных системах одни и те же типы данных могут записываться по-разному, поэтому желательно указать конкретный способ из доступных. Если этого не сделать, то используется символ '@', то есть нативный для текущей системы.
В строке формата мы пишем в каком порядке и какие типы собираемся преобразовать в байты.
Запакуем в байты простое число, токен "i".
>>> import struct
>>> struct.pack('=i', 10)
b'\n\x00\x00\x00'
Теперь несколько float, при этом нужно передавать элементы не массивом а последовательностью аргументов.
>>> struct.pack('=fff', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Вместо нескольких токенов можно просто указать нужное количество элементов перед одним токеном, результат будет тот же.
>>> struct.pack('=3f', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Теперь запакуем разные типы
>>> data = struct.pack('=fiQ', 1.0, 4, 100500)
я запаковал типы float, int и unsigned long long (очень большой int, на 8 байт)
b'\x00\x00\x80?\x04\x00\x00...'
Распаковка происходит аналогично, но нужно указать тот же формат, который использовался при запаковке. Результат возвращается всегда в виде кортежа.
>>> struct.unpack('=fiQ', data)
(1.0, 4, 100500)
Как видите, ничего страшного!
#lib#basic
💲Build Your Empire!
Farming tokens has never been more exciting!
Now you can create and grow your own empire:
👩💻 Unlock new cards,
🖥 Upgrade them,
🖥 Earn passive income!
Boost your farming and spin the Wheel of Whales! 💲
☺️Drop from the largest casino on Telegram.
🔔Subscribe🐳Join Wheel
➖➖➖➖➖➖➖➖➖➖➖
#whales
🌎 The “Bermuda Blob” refers to mysterious organic masses that washed ashore in Bermuda during the 1980s and 1990s. Scientific analysis identified them as tissue from decomposed whales, but their initial weird appearance sparked widespread speculation. The blobs lacked bone and clear features, confusing beachgoers and researchers before DNA testing solved their origin. ✨
#ocean⚡#mystery⚡#whales
👉subscribe Interesting Planet
🌎 Humpback whales travel up to 16,000 kilometers on their annual migrations, moving from cold polar feeding grounds to warm tropical breeding areas. Some populations follow routes guided by ocean currents and underwater seamounts. ✨
#migration⚡#whales⚡#ocean
👉subscribe Interesting Planet
👉more Channels
🌎 Gray whales complete one of the longest migrations of any mammal, traveling over 16,000 kilometers from Arctic feeding grounds to winter lagoons off Mexico. Along the way, they navigate by following coastlines and using Earth’s magnetic field. ✨
#migration⚡#whales⚡#ocean
👉subscribe Interesting Planet
👉more Channels
🪙EthGlobalNews 🐋#BTC#Whales#Insight
🔹 Glassnode data shows that long-term Bitcoin whales — holding coins for 7+ years — have been selling heavily throughout 2025.
📊多筆鏈上轉帳單筆規模達 $1億至$12億美元,顯示長期巨鯨正在進行結構性減倉。
📢類似拋售歷史上多出現在週期高位,若此波延續,恐暗示市場仍處中期修正階段。
#Bitcoin#Ethereum#比特幣#Crypto
———
👍@Web3NewsInsight
🥲
🥲Follow for more Web3 News
🤣
🇿🇦🐋Hermanus — the Whale Capital of South Africa!
📍 The coastal town of Hermanus in the Western Cape province is known as one of the best places in the world to see southern right whales.
🎥Video 1
🗓 From October 3 to 5, 2025, Hermanus — near Cape Town — is hosting the world-famous Hermanus Whale Festival, celebrating ocean life and breathtaking whale encounters. 🌊✨
📯 When the town’s Whale Crier spots southern right whales, he blows his kelp horn to alert visitors.
🎥 Video 2
#SouthAfrica#Nature#Whales#Tourism#Festivals#Travel