Можно ли в 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
По #BTC жду что то типа такого сценария.
Уже почти все распродал, набранное 11-12-го мая. На отскоке вверх своё забрал и буду ждать дальнейшего снижения.
Пока использую для хранения стейбл #DAI, думаю он выстоит в кровавой битве.
💲 USDC has overtaken XRP in terms of market capitalization!
The total supply of #USDT, #USDC and #DAI has increased to $141.42 billion - the highest since May 2022.
Earlier: Whales are hoarding stablecoins
Beyond Crypto
Ethereum Foundation Start 2025 with ETH Sale
The Ethereum Foundation kicks off 2025 by selling 100 ETH for 329,463 DAI. In total, 4.466 ETH was sold in 2024 for $12.61 million at an average price of $2,823 per token. The foundation often initiates sales before significant price drops.
For more details, visit: Spot On Chain
#Ethereum#Crypto#ETH#DAI#Market#Investing
🔄Миграция DAI в USDS.
Крупные биржи уже сегодня начнут автоматическую конвертацию #DAI в #USDS в соотношении 1:1.
Это финальный этап биржевой части ребрендинга MakerDAO в Sky Protocol. 9 апреля команда Sky обещает опубликовать подтверждение апгрейда DAI → USDS.
Ранее: MakerDAO больше нет
Crypto Headlines
🚀 Ethereum Foundation Completes Sale of 5,000 ETH
The Ethereum Foundation has successfully sold 5,000 ETH, according to Foresight News. The sale resulted in 11.1 million DAI, with an average selling price of $2,221 per ETH.
#EthereumFoundation#ETH#sale#DAI#cryptocurrency#ForesightNews
📝Epstein koalicia vs Irán 📝
hlavné udalosti ku koncu 24. apríla
Najhlasnejšou udalosťou dňa bolo predĺženie prímeria v Libanone o tri týždne, o čom s hrdosťou vyhlásil Trump, s prisľúbením zorganizovať medzi Libanoncami a Izraelčanmi stretnutie na vyššej úrovni. Ale ktokoľvek sa zúčastní dialógu, v praxi toto „prímerie“ pravdepodobne stále znamená odklad útokov na Bejrút.
➡️Keďže vnútené podmienky pre Libanon stále zahŕňajú likvidáciu „Hezbollahu“, OSI neprestáva s operáciami na juhu Libanonu, kde zostáva prítomná táto skupina, zároveň ničiac už obsadené obce. Preto predstavitelia spojené s hnutím okamžite zdôraznili zmysluplnosť ukončenia paľby a bojovníci skupiny pokračovali v odvetných ostreľovaniach izraelských pozícií.
➡️Okolo „zamrznutého“ konfliktu s Iránom je tiež málo pohybu, ak nerátame iluzórnu šancu na obnovenie rokovaní: médiá očakávajú, že odcestovalý do IslamabaduAbbas Arakči aspoň zanechá odkaz pre Američanov, alebo dokonca uskutoční priame stretnutie s delegátmi USA, ktorých zajtra sľubujú poslať do Pákistanu.
Rýchlosť, akou vo Washingtone oznámili pripravenosť na stretnutie, vytvára dojem, že tím Trumpa horúčkovito hľadá východisko z krízy, ktorú sám vytvoril. Ale príčina môže byť aj prozaickejšia: takéto pozitívne správy znižujú ceny ropy, čo sa stalo aj tentokrát.
➡️Cena „čierneho zlata“ nie je jediným problémom, ktorému čelia úrady USA. Médiá už naplno počítajú, akú škodu rozpočet a bojová schopnosť krajiny utrpia kvôli nadmernému spotrebovaniu munície v Iráne. A to ešte podceňujú — v skutočnosti je situácia ešte komplikovanejšia.
➡️Navyše, novinári vinia vojenské vedenie aj z podceňovania strát počas konfliktu. Na pozadí týchto vyšetrovaní vyhlásenia úradov USA o bezkrvnom víťazstve nad Iránom postupne strácajú váhu v očiach bežných občanov.
➡️Klenotom na torte boli vyjadrenia ultrapravicových síl v Izraeli, že Trump, ktorý predtým vystupoval proti anexii Západného brehu, dovolil rozšírenie osád. Keďže čoraz menej Američanov vyjadruje podporu Izraelčanom, takéto správy (aj keď sú falošné) ešte viac zasiahnu reputáciu súčasnej vlády USA.
📎Karty vo vysokom rozlíšení:
🔸Ohniská nestability (ru; en)
🔸Súčasná situácia v Libanone(ru; en)
#daĭdzhest #Izrael#Irán#Libanon#USA
🌐Zdroj:@rybar
🔗Link:https://t.me/rybar/79753
#Rybar
https://t.me/casusbellilive
Truth over narrative 24/7
WEB | CONTACT | SHOP
📅Vytvorené: 2026-04-24 22:50:31