Можно ли в 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
😎😎😎😎
⭐️ 16 ноября в учебном центре🤝ADC — Movie Night!🎬
Приглашаем на просмотр фильма “Веном 3: Последний танец”! Вас ждут динамика, юмор и неожиданные повороты с любимым антигероем.
🖤🕷️ Будет незабываемый вечер, полный экшена и сюрпризов!
🖤🕷️
📍 Место: Hotel Branch
⏰ Время: 17:00
📥 Для регистрации: @mmzlnvb
Не пропустите шанс разделить вечер с друзьями и семьей! 👫🎉
#ADCMovieNight#Venom3#ADCSchool#Кинопоказ
😎😎😎😎
⭐️ 26 октября в учебном центре 🤝ADC пройдёт Movie Night! 🎬
Приглашаем на просмотр анимационного фильма “Человек-Паук: Паутина вселенных”🕷️(2023) — продолжение истории о путешествиях по мультивселенным с потрясающей графикой и неожиданными поворотами сюжета!
Готовьтесь к увлекательным приключениям и встрече с новыми версиями Человека-Паука!
📍 Место: Hotel Branch
⏰ Время: 17:00
📥 Для регистрации: @mmzlnvb
Приходите всей семьёй и с друзьями, чтобы провести вечер в мире фантастики!
#ADCMovieNight#SpiderVerse2024#ADCSchool#Кинопоказ#МирМультивселенной
🌟 24 августа в учебном центре 🤝ADC пройдет грандиозный Movie Night! 🎬
Присоединяйтесь к нам на захватывающий просмотр фильма "Despicable Me 4" — новой части невероятно веселой и любимой всеми истории о приключениях Грю и миньонов! Этот фильм обещает море смеха и радости для всех возрастов.
😎🍌 Приготовьтесь к незабываемому вечеру, полному юмора, веселья и удивительных приключений! 🍌😎
📍 Место: Hotel Branch
⏰ Время: 18:00
📥 Для регистрации: @mmzlnvb
Не пропустите возможность насладиться кино в компании друзей и семьи! Расскажите об этом всем, кто любит миньонов и хочет отлично провести время!
#ADCMovieNight#DespicableMe4#ADCSchool#Кинопоказ#ПриключенияНаЭкране
🌟 20 июля в ADC School пройдет грандиозный Movie Night! 🎬
Присоединяйтесь к нам на захватывающий просмотр фильма "Inside Out 2" — продолжения любимой всеми анимационной истории о приключениях внутреннего мира человека! Этот фильм точно подарит вам массу положительных эмоций и улыбок.
🧠💫 Приготовьтесь к незабываемому вечеру, полному веселья и удивительных приключений! 💫🧠
📍 Место: Main Office
🕕 Время: 19:00
📥 Для регистрации: @mmzlnvb
Не пропустите возможность насладиться кино в компании друзей и семьи! Расскажите об этом всем, кто ценит качественные анимационные фильмы и хочет провести время с пользой!
#ADCMovieNight#InsideOut2#ADCSchool#Кинопоказ#ПриключенияНаЭкране
ADC мактабида тайёргарлик ва IELTS 7.0 натижаси!
Бизнинг укувчимиз IELTS имтиҳонидан 7.0 балл олиб, ўз меҳнати ва ҳаракати билан катта ютуққа эришди.
Бу натижа — ADC мактабидаги сифатли таълим, тажрибали ўқитувчилар ва ўқувчининг узлуксиз ҳаракати самарасидир. Биз ҳар бир укувчимизга ишонамиз ва уларнинг муваффақияти — бизнинг асосий мақсадимиздир.
Бизга қўшилинг ва IELTSдан катта натижаларга эришинг!
#IELTS#ADCschool#ADCбиланмуваффақият#IELTS7#NatijaBilanFaxrlanamiz
+998742281121
📞 +998958505111 | +998742276163
📞 +998742252536 | 📺@admofadc
📱Telegram📱Instagram📱Facebook📱TikTok📱YouTube
😎😎😎😎❗️
⭐️ 12 октября в учебном центре 🤝 ADC пройдёт грандиозный Movie Night! 🎬
Приглашаем на захватывающий просмотр фильма “Трансформеры: Начало” (2024) — новой главы эпической битвы автоботов и десептиконов! Вас ждут невероятные спецэффекты, сражения и удивительные повороты сюжета.
🤖🚗 Готовьтесь к вечеру, полному приключений и масштабных битв! 🤖🚗
📍 Место: Hotel Branch
⏰ Время: 17:00
📥 Для регистрации: @mmzlnvb
Приходите с друзьями и семьёй на незабываемый вечер! 👫🎉
#ADCMovieNight#Transformers2024#ADCSchool#Кинопоказ#МирТехнологий
🌟 14 сентября в учебном центре🤝 ADC пройдёт грандиозный Movie Night!🎬
Присоединяйтесь к нам на захватывающий просмотр фильма "Кунг-Фу Панда 4"— новой части любимой всеми истории о непобедимом По и его эпических приключениях! Этот фильм обещает море экшена, юмора и вдохновения для всех возрастов.
🐼🥋 Приготовьтесь к незабываемому вечеру, полному боевых искусств, веселья и удивительных открытий!🐼🥋
📍Место:Hotel Branch
⏰Время:18:00
📥 Для регистрации: @mmzlnvb
Не пропустите возможность насладиться кино в компании друзей и семьи! Расскажите об этом всем, кто любит невероятные приключения и забавного По! 👫🎉
#ADCMovieNight#KungFuPanda4#ADCSchool#Кинопоказ#ВечерСПо
🌍 INTERNATIONAL YOUTH SUMMIT 2026 @ ADC INTERNATIONAL SCHOOL 🚀
Empowering the Next Generation of Global Leaders.
Are you ready to transcend borders and redefine the future? ADC International School is proud to host this year’s International Youth Summit, and we are officially inviting students from all international schools to join our vibrant community.
💡 Why Participate?
Strategic Networking: Build lasting connections with ambitious peers from diverse cultural backgrounds.
Global Perspectives: Engage in high-level discussions on sustainability, innovation, and global ethics.
Leadership Excellence: Participate in workshops designed to sharpen your public speaking and problem-solving skills.
The ADC Experience: Explore our cutting-edge campus and immerse yourself in an atmosphere of creativity and collaboration.
📍 VENUE: ADC School Campus
🎟 REGISTRATION IS OPEN
Secure your spot at the table where the future is being discussed today. Don't miss the chance to represent your school on a global stage.
👉 REGISTER HERE @admofadc
+998742261078
"Bridging Cultures. Inspiring Innovation." Be the change. Be the leader. Be at ADC.
#ADCSummit2026#GlobalCitizens#InternationalEducation#YouthLeadership#ADCSchool
🎉 Дорогие учителя 🤝ADC School и учебного центра 🤝ADC! 🎉
В этот особенный день хотим сказать вам ОГРОМНОЕ спасибо за ваш труд, терпение и невероятную преданность своему делу! 🌟 Вы — те, кто вдохновляет, ведет к знаниям и помогает нам открывать новые горизонты каждый день. 🌍
Пусть каждый урок, который вы проводите, приносит вам радость, а все ваши старания будут вознаграждены успехами учеников. 📚💡 Вы — настоящие герои нашего времени! Счастья, здоровья и нескончаемой энергии вам! 💫
С Днем учителя! 👩🏫👨🏫
#HappyTeachersDay#ThankYouTeachers#УчителяНашеВсе#ADCSchool#WiseSchool
🎉 1-IYUN munosabati bilan “BOLALAR UCHUN TIL OLAMI” festivali! 🌍👧🧒
⠀
📅 Sana: 31-may
🕤 Vaqt: 8:30
⠀
Xalqaro bolalarni himoya qilish kuni munosabati bilan ADC o‘quv markazi 12 yoshgacha bo‘lgan bolalar va ularning ota-onalarini til olamiga qiziqarli sayohatga taklif etadi! ✨
⠀
🔹 Dasturda:
🧩 "Til topqichlar" kvesti — ingliz, nemis va ispan tillarida so‘zlarni topamiz!
🎭 "Teatr stansiyasi" — ertaklardan sahnalarni jonlantiramiz, niqoblar va shlyapalar kiyib o‘ynaymiz!
🎨 "Ijodiy burchak" — bayroqlar chizamiz, chet tillardagi iboralar bilan tabriknomalar yasaymiz.
🎤 "Bolalar karaokesi" — sevimli, oddiy qo‘shiqlarni birga kuylaymiz!
⠀
🍪 Shirinliklar va oilaviy fotosuratlar uchun fotoburchak
💃 Yakuniy flеshmob — hamma birga o‘rganadigan raqs yoki qo‘shiq!
⠀
#ADCfest#1iyun#BolalarniHimoyaQilishKuni#BolalarUchunFestival#ADCschool#ADCkids#TilOlamigaSayohat#O‘ynabO‘rganamiz #ADCfamily
☎️742261078
Telegram: 📺@admofadc
📱Telegram📱Instagram📱Facebook📱TikTok📱YouTube
⠀
🌟 День учителя в школе ADC – яркое и незабываемое событие!🌟
Наши ученики постарались на славу, чтобы сделать этот день по-настоящему волшебным! 💫 Танцевальные выступления зарядили атмосферу невероятной энергией, а стихи, посвящённые учителям, тронули до глубины души. ✨
Мы хотим выразить огромную благодарность каждому учителю за их неоценимый труд, терпение и любовь к своему делу. 🙏 Вы – настоящие вдохновители, благодаря вам наши ученики растут и стремятся к новым вершинам! 💼📚
Спасибо, что вкладываете в будущее наших детей! 🎓💐
#ADCschool#ДеньУчителя#СпасибоУчителям#ШколаМечты#Танцы#Стихи#УчительВдохновитель#ПраздникВШколе#УчителяГерои#ЛюбимаяШкола