Можно ли в 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
Hamster Kombat Announcement: Season 2 Rewards Arriving Soon
#HamsterKombat#Season2
Hamster Kombat Announcement hints at the upcoming reward drop for Season 2. Participants are encouraged to excel in Hamster King to achieve remarkable results.
Source: link
@tonlines
🤝Squad Games Season 2 by Electra – MORE REWARDS, MORE ACTION!
After a successful first season, #Electra launches Squad Games Season 2 — this time with even higher stakes: more prizes, more bonuses, more winners, and more opportunities for active traders!
📅 Tournament Start: May 26
🕓 Duration: 2 weeks
💵Squad Rewards:
💲 Up to $100,000 USDT
🎁 Up to $100,000 in bonus vouchers
⚡️5,000,000 airdrop points
*Rewards will be distributed among the top 20 traders by volume in each of the top-6 squads.
💵Individual Rewards:
💲 $5,000 USDT will be shared among the top-20 traders with the highest PnL (in USDT) throughout the tournament.
💵 Daily Bonuses — $50 each*:
✅Best PnL of the day
✅Worst PnL of the day
✅Highest daily trading volume
*Rewards are issued as Electra bonus vouchers and will be distributed after the tournament ends.
🤑Just like in Season 1, all trading activity counts toward farming points for the upcoming $ELT airdrop!
So by participating in the tournament, you’re not only competing for real rewards, but also boosting your future $ELT airdrop share.
⚡️ Electra also teased $ELT tokenomics:
• TGE supply — 100,000,000 $ELT
• Up to 10% allocated to the community airdrop
• 5,000,000 $ELT were already distributed in Season 1
• Season 2 has a significantly larger allocation focused on active traders and volume!
📈Took part in the Storm Trade contest and liked the vibe?
Then Squad Games by Electra is your next-level challenge:
✅ Bigger rewards
✅ $ELT farming
✅ Real incentives for your trading activity
🤑 The tournament is live!Join our squad, farm points and claim your share of rewards!
❤️TON Events Squad🧪
#Electra#SquadGames#Season2#Airdrop
🤝Squad Games Season 2 by Electra – MORE REWARDS, MORE ACTION!
After a successful first season, #Electra launches Squad Games Season 2 — this time with even higher stakes: more prizes, more bonuses, more winners, and more opportunities for active traders!
📅 Tournament Start: May 26
🕓 Duration: 2 weeks
💵Squad Rewards:
💲 Up to $100,000 USDT
🎁 Up to $100,000 in bonus vouchers
⚡️5,000,000 airdrop points
*Rewards will be distributed among the top 20 traders by volume in each of the top-6 squads.
💵Individual Rewards:
💲 $5,000 USDT will be shared among the top-20 traders with the highest PnL (in USDT) throughout the tournament.
💵 Daily Bonuses — $50 each*:
✅Best PnL of the day
✅Worst PnL of the day
✅Highest daily trading volume
*Rewards are issued as Electra bonus vouchers and will be distributed after the tournament ends.
🤑Just like in Season 1, all trading activity counts toward farming points for the upcoming $ELT airdrop!
So by participating in the tournament, you’re not only competing for real rewards, but also boosting your future $ELT airdrop share.
⚡️ Electra also teased $ELT tokenomics:
• TGE supply — 100,000,000 $ELT
• Up to 10% allocated to the community airdrop
• 5,000,000 $ELT were already distributed in Season 1
• Season 2 has a significantly larger allocation focused on active traders and volume!
📈Took part in the Storm Trade contest and liked the vibe?
Then Squad Games by Electra is your next-level challenge:
✅ Bigger rewards
✅ $ELT farming
✅ Real incentives for your trading activity
🤑 The tournament is live!Join our squad, farm points and claim your share of rewards!
❤️TON Events Squad🧪
#Electra#SquadGames#Season2#Airdrop
The Adventure Continues!🌖
Hey Space Cadets!
Thousands of brave space pioneers 💫 have been navigating the vast expanse of space, laying the foundation of our great lunar mission in Season 1. As Season 2 is heating up🔥, here’s what you need to know what happened and what’s coming next:
❌What Happened at the End of Season 1?
As Season 1 concluded, we took a snapshot of your activity by 00:00 UTC on July 22. You received a Season 1 achievement badge 1️⃣ capturing 4 key achievements: space bucks balance, missions completed, referrals invited, and your level at the end of the season.
❌Why Was My Progress Reset?
Season 1 ended, and with it, the progress of our space missions (your levels and balances) was reset. With each new season, you have the opportunity to rebuild your way to the stars. Every fresh start means new challenges, new strategies, and new chances to secure your spot in the airdrop.
❌What About the Airdrop?
The 4 achievements on your badge are crucial for the upcoming airdrop. The airdrop will be based on the results of five seasons. So, your efforts in each season count towards securing your share of the rewards.
SEASON 2 IS ON! 🚀
Expect fresh missions, exciting rewards, and the chance to build even more impressive ships. Plus, stay tuned for announcements, and, of course, level up and land on the moon!
👉TO THE MOON APP👈
Website | Telegram Chat | X | Discord | Medium
#ToTheMoon#MoonPlay#ecosystem#blockchain#gamefi#web3#wenlisting#season2#communitymilestone#communityfirst#taptap#clicker#game
Welcome to Season 2!⚡
And that’s a wrap on Season 1! Thank you for making it so amazing🚀- from building stellar ships to completing daring missions, you’ve truly pushed the boundaries of space exploration.
⭐️SEASON 1 BADGE awaits in the Profile (right under capsules).
⭐️ Badge captures your Season 1 results. Those 4 achievements - SP balance, missions, referrals, and level - would matter for the airdrop. The airdrop will be based on the results of all 5 seasons.
⭐️Your journey has been reset, offering a the chance to climb higher, earn more, and earn Season 2 badge.
Prepare your ships and rally your crew, because the next adventure is just around the corner. More missions, more thrill, and more rewards😎 are on the way. Let’s continue our quest to conquer the moon and uncover its hidden treasures!
👉TO THE MOON APP👈
Website | Telegram Chat | X | Discord | Medium
#ToTheMoon#MoonPlay#ecosystem#blockchain#gamefi#web3#wenlisting#season2#communitymilestone#communityfirst#taptap#clicker#game
Shine Bright with Your Season 2 Badges and Win Big! 🪙
Season 2 was definitely one to remember: fierce competition, amazing Space Bucks balances, crazy level-ups 🆙, completed missions, and tons of new players joining To The Moon! via referral links 🤝. We've got plenty of reasons to celebrate!
Just like we did in July - share your Achievement Badge from Season 2 2️⃣, and you could win a prize equal to the Space Bucks balance on it!
Here's how to join in:
1️⃣ Follow the @moonplay_official group.
2️⃣Join our lively chat at @moonplay_chat.
3️⃣Drop a screenshot of your Season 2 Achievement Badge + use a hashtag #Season2 in the comments below this announcement.
⭐️To find your Season 2 Badge, just tap your profile in the top right and look under the Loot Capsules.
We'll pick 20 lucky winners in 24 hours, so keep your eyes peeled! Good luck, and may your Badge shine the brightest!
👉TO THE MOON APP👈
Website | Telegram Chat | X | Discord | Medium
#ToTheMoon#MoonPlay#ecosystem#blockchain#gamefi#web3#wenlisting#secondseason#communitymilestone#communityfirst#taptap#clicker#game