Можно ли в 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
#dialog
- Doktor, operatsiyadan keyin pianino chala olamanmi, faqat to'g'risini ayting!
- Ha albatta!
- Zo'r-ku, men pianino chalishni bilmasdim, xursand qildingiz!
@matematikadan_milliy_sertifikat
#dialog
- Mana shu formulalarni yozib olinglar...
- Ustoz, bizga bu formulalar nega kerak? Hayotda bizni kasbimizga fizikani umuman aloqasi yo'q...
- Jahongir hayotda bilmadimku-ya, lekin senga imtihonda aniq kerak bo'ladi.
@TALABA_UZ_EDU✈️
#dialog
- Shu kitobingni titishni bas qilsang-chi, nima naf bor bundan?
-Shu telefoningni kavlashni bas qilsang-chi, nima naf bor bundan?
P.S: Siz qaysi biri naf keltiradi deb o'ylaysiz?
@Muhammad_Fozil
🇷🇺Время окунуться в мир балов!
Уже совсем скоро состоится уникальная лекция о балах!
На лекции вы узнаете:
🔴 Как балы стали символом дипломатии: от Венского конгресса до приемов при дворе Романовых,
🔴 Какие танцы звучали в бальных залах: от грациозного менуэта до вихря венского вальса,
🔴 Какие правила действовали в бальном этикете: как приглашали на танец, о чем говорили без слов и что значило движение веера,
🔴 Какой был дресс-код: наряды, аксессуары и тайный смысл цветов.
📖 Лекция основана на материалах книги Routledge’s Manual of Etiquette (1875) и исторических источниках.
Бонус! Интерактивные элементы:
🔵 Разбор языка веера и его секретных знаков,
🔵 Мини-мастер-класс по бальным поклонам и приглашению на танец.
📆 Когда: 7/03/2025, 19:00
📍 Где: 2, av Rapp 75007 Paris
✅ Количество мест ограничено! Регистрация обязательна: [email protected]
Приходите, чтобы окунуться в атмосферу утонченности, грации и блеска настоящих балов! ✨
#диалог
➖➖➖➖➖➖➖➖➖➖➖
🇬🇧Time to Immerse Yourself in the World of Balls!
A unique lecture on balls is coming soon!
At the lecture, you will learn:
🔴 How balls became a symbol of diplomacy – from the Congress of Vienna to the Imperial receptions at the Romanov court.
🔴 What dances filled the ballrooms – from the graceful minuet to the whirl of the Viennese waltz.
🔴 The rules of ballroom etiquette – how invitations were made, what was said without words, and the hidden language of the fan.
🔴 The dress code – outfits, accessories, and the secret meanings of colours.
📖 The lecture is based on historical sources and the 1875 Routledge’s Manual of Etiquette.
Bonus! Interactive Elements:
🔵 Deciphering the language of the fan and its secret messages.
🔵 Mini-masterclass on ballroom bows and dance invitations.
📆 When: 7/03/2025, 19:00
📍 Where: 2, av Rapp 75007 Paris
✅ Limited spots available!
Registration is required: [email protected]
Come and immerse yourself in the elegance, grace, and splendor of true historical balls! ✨
#Dialog
➖➖➖➖➖➖➖➖➖➖➖
🇦🇹Zeit, in die Welt der Bälle einzutauchen!
Ein einzigartiger Vortrag über Bälle findet demnächst statt!
Bei dem Vortrag werden Sie lernen:
🔴 Wie Bälle zu einem Symbol der Diplomatie geworden sind. Vom Wiener Kongress bis zu den Empfängen am Hof der Romanows.
🔴 Welche Tänze in Ballsälen getanzt wurden.Vom anmutigen Menuett bis zum stürmischen Wiener Walzer.
🔴 Was waren die Regeln der Ballhaus-Etikette. Wie man zum Tanzen aufgefordert wurde, was ohne Worte gesagt wurde und was die Fächerbewegung bedeutete.
🔴 Wie die Kleiderordnung aussah. Outfits, Accessoires und die geheime Bedeutung der Farben.
📖 Der Vortrag basiert auf Routledge's Manual of Etiquette (1875) und historischen Quellen.
Bonus! Interaktive Elemente:
🔵 Eine Aufschlüsselung der Sprache des Fächers und seiner geheimen Zeichen
🔵 Ein Mini-Meisterkurs über die Verbeugung im Ballsaal und Einladungen zum Tanz
📆 Wann: 7/03/2025, 19:00
📍Wo: 2, av Rapp 75007 Paris
✅ Die Anzahl der Plätze ist begrenzt!
Eine Anmeldung ist erforderlich: [email protected]
Tauchen Sie ein in die Atmosphäre der Raffinesse, der Anmut und des Glanzes echter Bälle! ✨
#Dialog
🖥Интервью «Сочинского диалога»
В апреле в Вене прошла встреча Заместителя директора Российско-австрийского Форума общественности «Сочинский диалог» В.Д. Хлистун с пресс-секретарем, заведующим протоколом Постоянного представительства Российской Федерации при международных организациях в Вене С.Г. Агаджаняном.
В процессе диалога были обсуждены возможности для обмена полезным опытом, намечены потенциальные направления совместной работы и способы их реализации.
🖥 Полное интервью можно посмотреть по ссылке.
#диалог
➖➖➖➖➖➖➖➖➖➖➖
🇬🇧Interview of the “Sochi Dialogue”
In April, Deputy Director of the Russian-Austrian Public Forum “Sochi Dialogue” V.D. Khlistun met in Vienna with the Press Secretary and Head of Protocol of the Permanent Mission of the Russian Federation to International Organizations in Vienna, S.G. Agadzhanyan.
During the discussion, the participants explored opportunities for exchanging valuable experience, outlined potential areas of cooperation, and discussed ways to implement them.
🖥 You can watch the full interview via the link.
#Dialogue
➖➖➖➖➖➖➖➖➖➖➖
🇦🇹Sotschi-Dialog-Interview
Im April fand in Wien ein Treffen zwischen der stellvertretenden Direktorin des österreichisch-russischen zivilgesellschaftlichen Forums „Sotschi-Dialog“ W. Khlistun und dem Pressesekretär und Protokollchef der Ständigen Vertretung der Russischen Föderation bei internationalen Organisationen in Wien S. Aghajanian.
Im Laufe des Dialogs erörterten sie die Möglichkeiten des Austauschs nützlicher Erfahrungen, skizzierten potenzielle Bereiche der gemeinsamen Arbeit und Wege zu deren Umsetzung.
🖥 Das vollständige Interview kann unter folgendem Link eingesehen werden.
#Dialog
🇷🇺Летняя школа по изучению наследия Канта
«Сочинский диалог» совместно с «Академией Кантиана» и «Петербургским диалогом» приглашают вас принять участие в VII Международной летней школе по изучению наследия И. Канта. Тема: «Энтузиазм и история в кантовской перспективе».
В мероприятии примут участие 20 молодых ученых из России и зарубежных стран, заявки которых пройдут конкурсный отбор: заочную оценку письменной работы и устное собеседование.
Работа школы будет проходить на английском языке.
📆 27 июля – 3 августа 2025 г.
📍 БФУ имени И.Канта, г. Калининград, Россия
🖥 Подробнее о подаче заявок, лекторах и программе летней школы можно узнать на сайте: https://lomonosov-msu.ru/rus/event/9827/
#Диалог
➖➖➖➖➖➖➖➖➖➖➖
🇬🇧Summer School on Kant’s Legacy
Sochi Dialogue, in cooperation with the Kantian Academy and the Petersburger Dialog, invites you to participate in the 7th International Summer School on the Legacy of Immanuel Kant.
This year’s theme: “Enthusiasm and History in the Kantian Perspective.”
The school will bring together 20 young scholars from Russia and abroad, selected through a competitive process that includes the evaluation of a written submission and an oral interview.
The working language of the Summer School is English.
📆 July 27 – August 3, 2025
📍 Immanuel Kant Baltic Federal University, Kaliningrad, Russia
🖥 For more information about the application process, lecturers, and the program, please visit:
https://lomonosov-msu.ru/rus/event/9827/
#Dialogue
➖➖➖➖➖➖➖➖➖➖➖
🇦🇹Sommerschule zum Studium des Erbes von Immanuel Kant
Das Forum "Sotschi-Dialog" lädt gemeinsam mit der Kantian Akademie und dem St. Petersburger Dialog zur Teilnahme an der VII. Internationalen Sommerschule zum Studium des Erbes von Kant ein. Das Thema: "Enthusiasmus und Geschichte in kantischer Perspektive".
An der Veranstaltung werden 20 junge Wissenschaftlerinnen und Wissenschaftler aus Russland und dem Ausland teilnehmen, deren Bewerbungen ein Auswahlverfahren durchlaufen: eine Bewertung der schriftlichen Arbeiten und ein mündliches Interview.
Die Arbeit der Schule wird in englischer Sprache durchgeführt.
📆 27. Juli - 3. August 2025
📍 Baltische Föderale Immanuel-Kant-Universität, Kaliningrad, Russland
🖥 Weitere Informationen über Bewerbungen, DozentInnen und das Sommerschulprogramm finden Sie unter: https://lomonosov-msu.ru/rus/event/9827/
#Dialog