Можно ли в 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
Mt. Gox just announced it will start repaying creditors in $BTC and $BCH in early July 2024. Preparations and compliance measures are complete, but detailed implementation will take some time.
Note that Mt. Gox currently holds 141,686 $BTC ($8.67B) across 3 wallets.
It seems that the market has already reacted negatively after the news was out, with the $BTC price dropping from $62.8K to $60.8K in only a few minutes.
Follow @spotonchain and set alerts for the #MtGox entity via https://platform.spotonchain.ai/en/platform/entity/2182
#MtGox#BTC
Экс-глава Mt. Gox предложил хардфорк для возврата украденных BTC 2011 года
Бывший CEO Mt. Gox предложил рассмотреть возможность хардфорка сети Bitcoin для возврата монет, похищенных в результате взлома 2011 года.
Речь идет о примерно 80 000 BTC, которые по текущим ценам оцениваются в около $5,2 млрд. Идея предполагает изменение истории блокчейна с целью признания соответствующих транзакций недействительными.
Инициатива уже вызвала критику в сообществе, поскольку подобное вмешательство противоречит принципу неизменяемости блокчейна.
Massive Bitcoin Transfer by Mt. Gox
Mt. Gox moves $905 million worth of Bitcoin to an unmarked wallet, raising eyebrows in the crypto community. The exodus has sparked speculations about future moves. For more details, check the full article here.
#Bitcoin#MtGox#Crypto#Blockchain
💸Биржа Mt. Gox переводит 24 000 BTC после взлета крипты выше $100 000
🟪 Криптовалютная биржа Mt. Gox перевела 24 051 BTC на неизвестный адрес после того, как цена биткоина превысила $100 000.
🟪 По данным Arkham Intelligence, транзакция состоялась утром 5 декабря. Это первая операция биржи с 12 ноября.
🟪 Аналитики предполагают, что перевод может предшествовать новым выплатам кредиторам, пострадавшим от взлома платформы. Ранее подобные транзакции совершались перед выплатами компенсаций.
🟪 Перемещение таких объемов криптовалюты может оказать давление на рынок. Если биткоины будут проданы на биржах, это может привести к снижению их стоимости.
#MtGox#Биткоин#BTC
АкадемияGarantex|Garantex Announcements|ВКонтакте|YouTube
⚠️ Mt. Gox wakes up: 10,608 $BTC (~$954M) moved today after 8 months offline. 🚨
• 185.5 $BTC ($16.7M) sent to #Kraken ~12 mins ago
• 10,422 $BTC ($937M) moved to a new wallet—likely its own cold wallet—potentially to be distributed to exchanges in smaller batches later (~4 hrs ago)
Follow @spotonchain to track the next #MtGox moves with us now!
https://x.com/spotonchain/status/1990698974127517780
[ATTENTION] Mt. Gox just moved 11,501.4 $BTC ($1B) again!
This includes 10,608 $BTC ($929.7M) sent to a new wallet and 893.4 $BTC ($78.3M) to a warm wallet.
Notably, after Mt. Gox’s previous transfer, 332 $BTC ($25.5M) was deposited into #Bitstamp. It is likely the 893.4 $BTC sent to the warm wallet will be moved out shortly too!
Follow @spotonchain and track #MtGox live now: https://x.com/spotonchain/status/1904335124675833869
Mt. Gox just moved 11,834 $BTC ($910M) again!
This includes 11,502 $BTC ($885M) to a new wallet and 332 $BTC ($25.5M) to a warm wallet.
Notably, after Mt. Gox’s last major $BTC transfer 5 days ago, 166.5 $BTC was sent to #BitGo, likely for creditor repayment. The above 332 $BTC ($25.5M) may be moved out soon.
Follow @spotonchain and track #MtGox live with us now: https://x.com/spotonchain/status/1899263219065393536
🔴 Mt. Gox moved 47,228 $BTC ($3.15B) to 3 new wallets in the past 2 hours!
Based on past activities, Mt. Gox may soon move parts of these $BTC to CEX to repay creditors.
Since July 5, 2024, Mt. Gox has transferred a total of 61,559 $BTC ($3.88B) to #Bitstamp, #SBIVC and #Kraken for creditor repayments.
Follow @spotonchain and set alerts for the latest updates about #MtGox now: https://platform.spotonchain.ai/en/entity/2182
🚨🚨 BREAKING: Mt. Gox moved 2,239 $BTC ($149M) to #Bitstamp 30 minutes ago!
To repay creditors this July as previously announced, Mt. Gox has so far:
➡️ Deposited 1,545 $BTC ($84.87M) to #Bitbank on Jul 5
➡️ Moved 48,641 $BTC ($3.27B) wallet 3JQie, possibly a #Kraken deposit, on Jul 16 and held them there.
➡️ Moved 2,239 $BTC ($149M) to #Bitstamp on Jul 23 just now.
Follow @spotonchain and set alerts for #MtGox now via https://platform.spotonchain.ai/en/platform/entity/2182
Mt. Gox moved 47,229 $BTC($3.13B) to 3 unknown wallets again in the past 3 hours!
#MtGox has moved 61,559 $BTC($3.89B) to #Bitstamp, #Kraken, #Bitbank, and SBI VC Trade for repayment since July 5.
Bitcoin Hits $92,000; Crypto News Roundup
- BioNexus Gene Lab adopts Ethereum treasury strategy, first Nasdaq firm to do so. Read more
- Argentina freezes $100M in crypto linked to LIBRA sale, seeks transaction records. Read more
- Trump's WLFI invests $336M in various tokens, faces $88M loss. Read more
- Ethereum Devconnect set for Buenos Aires, Nov 17-22, 2025. Read more
- $50M in USDC minted at USDC Treasury. Details
- Mt. Gox transfers over $1B in Bitcoin to an unmarked address. Read more
#Bitcoin#Crypto#Ethereum#USDC#MtGox#Argentina#BioNexus#WLFI#Devconnect#Tokens#CryptoAssets#Treasury#ETH#Investments#CryptoNews#Finance#Blockchain#Tech#NASDAQ#Loss
Whale Moves ETH, Mt. Gox Transfers BTC
A major whale sold 25,800 ETH to avert liquidation, incurring a $31.75 million loss after purchasing at an average price of $3,084 in July 2024. Meanwhile, Mt. Gox transferred 11,501 BTC (approx. $905 million) to a new address and 332 BTC (approx. $26.13 million) to its warm wallet. New markets for minting crvUSD with weETH, cbBTC, and LBTC as collateral launched.
#ETH#BTC#MtGox#DeFi#Crypto#Whale#Liquidation#trading#MarketNews#CurveFinance#blockchain#finance#investment#cryptocurrency#ethusd#bitcoinnews#assets#collateral#cryptoexchange#trends