Можно ли в 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
Daily English✍️
Talking About Realtionships.
ስለ ግንኙነት/ዝምድና ማውራት።
I’m single.
ፍቅረኛ የለኝም።
I have a boyfriend
ፍቅረኛ አለኝ።
I have a girlfriend.
ፍቅረኛ አለቺኝ።
We’re engaged.(= going to get married)
ተጫጭተናል /ልንጋባ ነው/።
We’re getting married in June.
ሰኔ ላይ እንጋባለን።
I’m married.
አግብቻለው /ባለ ትዳር ነኝ/።
I’ve been married for 10 years.
ካገባሁ 10 ዓመት ሆኖኛል።
I’m divorced.
ተፋትቻለው።
I’m widowed.(= my husband/wife has died)
ባሌ ሞቶብኛል / ሚስቴ ሞታብኛለች
I’m not looking for anything serious.
ቁምነገር የሚሆን ነገር እየፈለግኩ አይደለም።
I’m not quite over my ex.
የድሮ ፍቅረኛዬን አልረሳኋትም።
እንግሊዘኛን በቀላሉ ለመማር ከስር👇👇👇 join ይበሉ
በ ሶስት(3) ወር ብቻ እንጊሊዝኛ ቋንቋ ተናጋሪ ይሁኑ
#J-M-S ቋንቋ 👇👇👇
https://t.me/+xtML79KJky8wMWY0
https://t.me/+xtML79KJky8wMWY0
🔰 YouTube Music Vanced APK v6.16.52 🔰
MOD - (Premium + Ad-Free)
ℹ️ Description:
YouTube Music Vanced [Stable] [Unofficial] [Non-Root] Download YouTube Music MOD APK for android Update 2022 + microG
🆕 WHAT’S NEW:
Bumped base, YTM Rewind now works
Updated Translations
NOTE: Enforce Repeat not working
➕ MOD:
★★★ YouTube Music ReVanced Advanced compiled by derrin ★★★
➠ Compiled apk with the latest:
➤ ReVanced ReX Patches v2.189.0 Latest
- Bug Fixes
● youtube-music/hide-upgrade-button: Not worked without Sample button
- Feature
● youtube-music: Added support for v6.16.52
➤ ReVanced ReX Integrations v0.117.2 Latest
- Bug Fixes
➤ ReVanced Extended Cli v2.22.2 Latest
● build: update dependencies
● build: move to official Google smali fork
● build: move to maven central apktool fork
● build: move to maven central revanced-patcher fork
※ support --unsigned and --rip-lib commands #j-hc/revanced-cli
➠ It's based on the latest ReVanced ReX features, bug fixes and optimizations for YouTube Music app (with ReVanced Extend settings)
➠ Applied patches:
EXPAND: SHOW
Category: #Music_&_Audio 🧩
Developer: Google LLC 👨💻
App ID: com.google.android.apps.youtube.music🔐
Current Version: VARY ✅
Latest Update: 2023-08-31 14:21:05 ♻️
Content Rating: Teen 👀
Requirements: 5.0 📲
Enjoy 😊😘😊😘😊😘😊😘😊
https://t.me/joinchat/KOQ8o_8ns24yZTE8
@EverythingMe
Every day people from all parts of the world would remind me how amazing their lives are and how mine isn't.
I notice most of the people around me are just pretending to be happy, they show me what they want me to see not what i'm needed to see. I somehow know the truth but it's just so tough to believe it.
It's just that my heart is so used to being sad about every other single situation, now it finds it challenging to become something it has never been.
Honestly, my heart gave up on me a long time ago because my dumbass would always try to find reasons to make myself feel like shit.
With time I reached a point where I no more cared if I was happy or not.I had no idea about what I was trying to do with myself.
I didn't care if I watched that tv show which I used to enjoy, I didn't care if I ate those chicken rolls that my mom prepared just for me because I would beg her to make them, I didn't care if I was healthy, I didn't care about my looks, desires, likes, dislikes. I reached a point where I had no more fucks left with me to give to the world or to myself.
During one of the summer holidays my best friend who came to visit me after two whole years would scan my whole appearance with a concerned disgust in his eyes.
"Well, you look like shit. I heard from your mom that you haven't eaten anything since last two days. Are you trying to kill yourself or some shit? "
I smiled because I finally figured out what I was trying to do with myself.
"Hopefully"
#review#J # #promptWriting
(English isn't my first language, I need constructive criticism 😭)