Можно ли в 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
💥💥💥 "Potrei deluderti, ma quello che sappiamo è che in realtà è morto a causa di un coagulo di sangue. E queste sono informazioni più o meno confermate. Questo è ciò che sappiamo. Non sono prese da Internet. La morte è naturale".
Kyrylo Budanov, capo dell'intelligence militare ucraina, sulla morte di #Navalny.
Zelensky lo metterà nella lista dei putiniani da inviare alla Commissione europea?
Друзья!… Трудно поверить, но прошёл уже год. 16 февраля исполнится ровно год со дня гибели Алексея Навального. В римской церкви Сант-Антонио в этот день пройдет панихида по Алексею. Это та самая церковь, в которой многие из нас собрались в прошлом году вскоре после смерти Алексея и в день его похорон. Священник, отец Кирилл, тогда не только провел службу, но и нашел очень проникновенные слова. Он проведет панихиду и в этот раз.
После церковной службы мы соберемся в одном из ближайших кафе, поговорим в теплой обстановке.
Начало панихиды в 18.50.
Адрес: Chiesa di Sant’Antonio. Via Carlo Alberto, 2
Служба пройдет на церковно-славянском и продлится около 1 часа.
Приветствуется любое пожертвование (offerta libera). Приходите вне зависимости от вашего вероисповедания, пригласите родных или друзей – в том числе итальянцев. Алексей Навальный давно стал международной фигурой, его автобиографическая книга «Патриот» вышла в 36 странах на 26 языках, в том числе на итальянском. Увы, посмертно.
До встречи.
#navalny
Концерт памяти Алексея Навального в его день рождения.4 июня, Берлин
Мы продолжаем добиваться того, чтобы имя Алексея и его идеи звучали как можно громче. Путин убил Навального. Но он не сможет его победить, пока мы помним Алексея и пока есть люди, которые говорят о нём.
На сцене: Noize MC, Каста, Порнофильмы, АИГЕЛ ❤️
📅 4 июня, 19:00
📍 Uber Eats Music Hall, Mercedes-platz 2
🎫Билеты на сайте концерта
Приходите! 🔥
🔗Наш телеграм-чат
——————
Konzert zum Gedenken an Alexej Nawalny an seinem Geburtstag. 4. Juni, Berlin
Wir setzen uns weiterhin dafür ein, dass Alexejs Name und seine Ideen so laut wie möglich sind. Putin hat Nawalny ermordet. Aber er kann ihn nicht besiegen, solange wir uns an Alexej erinnern und solange es Menschen gibt, die über ihn sprechen.
Auf der Bühne: Noize MC, Kasta, Pornofilmy, AIGEL
📅 4. Juni, 19 Uhr
📍 Uber Eats Music Hall, Mercedes-platz 2
🎫Tickets auf der Website des Konzerts
Kommt vorbei! 🔥
🔗Unsere Telegram-Gruppe
#Navalny@navalnyteam_de@navalnyteam_deutschland
Алексей Навальный написал мемуары. Автобиография «Патриот» выйдет 22 октября
«Читателипознакомятся с человеком, которого я любила, — человеком глубокой порядочности и непоколебимого мужества. Его история не только почтит его память, но и вдохновит других бороться за то, что правильно, и никогда не забывать о ценностях, которые действительно имеют значение», —
Юлия Навальная об автобиографии.
Алексей начал писать книгу во время лечения в Германии и продолжил в тюрьме. «Патриот» — последнее послание Алексея миру.
Заказать книгу в Германии можно здесь.
🔗Наша телеграм-группа
————
Alexej Nawalny hat Memoiren geschrieben. Seine Autobiographie PATRIOTerscheint am 22. Oktober
„Die Leser werden den Mann kennenlernen, den ich zutiefst geliebt habe – einen Mann von umfassender Integrität und unbeugsamem Mut. Seine Geschichte wird nicht nur sein Andenken ehren, sondern auch andere Menschen inspirieren, sich für das Richtige einzusetzen und nie die Werte aus den Augen zu verlieren, die wirklich zählen”,
Julia Nawalnaja über Alexejs Autobiographie.
Alexej begann mit der Arbeit an PATRIOT während seiner Erholung in Deutschland und setzte sie im Gefängnis fort. Das Buch ist Nawalnys Abschiedsbrief an die Welt.
PATRIOT kann hier vorbestellt werden.
🔗Unsere Telegram-Gruppe
#Navalny@navalnyteam_de@navalnyteam_deutschland
«Мое послание на случай, если меня убьют, очень простое: не сдавайтесь,» - Алексей Навальный всегда призывал продолжать бороться, если с ним что-то случится.
И мы будем продолжать.
Спасибо всем, кто пришел к российскому посольству в Вене вчера.
И всем, кто продолжает приходить сегодня, поддерживая стихийный мемориал.
Нас много, мы вместе.
Любовь сильнее страха!
#Navalny
Только что российские власти объявили: Алексей Навальный умер в колонии
Это политическое убийство.
Нам стало известно, что сегодня в течение всего вечера неравнодушные люди будут приходить к посольству, чтобы выразить свою скорбь и протест.
С 15:00, сегодня
Посольство России в Вене
Один за всех и все за одного!
#Navalny
Памятные мероприятия ко дню рождения Алексея Навального 4 июня в городах Германии / Geburtstag von Alexej Nawalny. Gedenkveranstaltungen am 4. Juni in deutschen Städten
📍 Bamberg — Акция памяти / Gedenkaktion — Harmoniegarten, 18:30-19:00
📍 Berlin — Акция памяти / Gedenkaktion — Unter den Linden 63-65 (У мемориала Алексею Навальному / Gedenkstätte für Alexej Nawalny), 17:00-19:00
📍 Dresden — Уборка мемориала и памятная акция с речами / Pflegeeinsatz an der Gedenkstätte und Gedenkaktion mit Redebeiträgen — Bautzner Straße 112A, 17:30-18:30
📍 Düsseldorf — Пикет и сбор подписей за установку постоянных мемориалов российским политзаключённым / Mahnwache und Unterschriftensammlung für dauerhafte Gedenkstätten für russische politische Gefangene — Corneliusplatz/Königsallee, 17:00-18:30
📍 Düsseldorf — Уборка мемориала и памятная акция с речами / Pflegeeinsatz an der Gedenkstätte und Gedenkaktion mit Redebeiträgen — Puschkin Denkmal (Oberbilker Markt), 19:00-20:00
📍 Köln — Пикет и сбор подписей за установку постоянных мемориалов российским политзаключённым / Mahnwache und Unterschriftensammlung für dauerhafte Gedenkstätten für russische politische Gefangene — Domplatte, 17:00-18:30
📍 Köln — Уборка мемориала и памятная акция с речами / Pflegeeinsatz an der Gedenkstätte und Gedenkaktion mit Redebeiträgen — Park der Menschenrechte, 19:00-20:00
📍 Nürnberg — Акция памяти / Gedenkaktion — Andreij-Sacharow-Platz, 19:00-20:00
(Die Liste wird aktualisiert / Список обновляется)
Вы также можете прийти почтить память Алексея Навального к мемориалу в своем городе.
Фото и видео с мероприятий присылайте, пожалуйста, нам в бот (@NawalnysTeamBot) с указанием города или тэгайте нас в инстаграме: instagram.com/navalnyteam_germany.
———
Bitte schickt uns Fotos und Videos von den Veranstaltungen an unseren Bot (@NawalnysTeamBot) mit Angabe der Stadt oder taggt uns auf Instagram: instagram.com/navalnyteam_germany.
🔗Поддержите нашу работу / Unterstütze unsere Arbeit
🔗Наш телеграм-чат / Unsere Telegram-Gruppe
#Navalny@navalnyteam_de@navalnyteam_deutschland
Giorgia #Meloni: "La morte di Alexei #Navalny, durante la sua detenzione, è un'altra triste pagina che ammonisce la comunità internazionale. Esprimiamo il nostro sentito cordoglio e ci auguriamo che su questo inquietante evento venga fatta piena chiarezza"
@UltimoraPolitics
Il parlamento italiano si ricompatta per ricordare #Navalny: dopo la proposta di Carlo #Calenda, tutti i partiti parteciperanno lunedì alla fiaccolata. Adesioni bipartisan, da M5S e AVS a Lega e FdI.
@UltimoraPolitics