Можно ли в 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
Ministro degli Esteri iraniano #Araghchi: "Siamo pronti per una de-escalation, ma prima bisogna fermare l'aggressione, prima bisogna fermare gli attacchi. E poi c'è la possibilità di colloqui, e possiamo prenderla in considerazione".
▶️Rencontre entre Vladimir #Poutine et Abbas #Araghchi, représentant spécial du président de la République islamique d'Iran et ministre iranien des Affaires étrangères
📱Regarder sur VKontakte
RT en français • Osez questionner !
🇷🇺🇮🇷Rencontre entre Vladimir #Poutine et le ministre iranien des Affaires étrangères, Abbas #Araghchi.
Aux côtés du président russe se trouvent également le ministre russe des Affaires étrangères Sergueï Lavrov, le chef de la Direction principale du renseignement de l’état-major des forces armées russes Igor Kostioukov et le conseiller présidentiel Iouri Ouchakov.
Poutine a indiqué avoir reçu la semaine dernière un message du guide suprême iranien Mojtaba Khamenei.
RT en français • Osez questionner !
⏺Préparatifs de la rencontre entre Vladimir #Poutine et Abbas #Araghchi à la Bibliothèque présidentielle de Saint-Pétersbourg
RT en français • Osez questionner !
💬#Téhéran défend la voie diplomatique
Le chef de la diplomatie iranienne Abbas #Araghchi estime que les États-Unis choisissent l’escalade militaire au moment même où une issue diplomatique devient possible.
Selon lui, la pression exercée contre l’Iran ne fera pas céder Téhéran et risque au contraire d’éloigner davantage toute perspective de règlement politique.
RT en français • Osez questionner !
🇮🇷🇨🇳Iran-Chine : Abbas #Araghchi à Pékin
Le ministre iranien des Affaires étrangères, Abbas Araghchi, est arrivé en #Chine à la tête d’une délégation diplomatique.
Selon les médias chinois, les pourparlers avec son homologue Wang Yi ont déjà débuté.
Source : réseaux sociaux
RT en français • Osez questionner !
📢#Araghchi visitera la #Russie ce 27 avril. À #Moscou, il prévoit de discuter du conflit au Moyen-Orient, a déclaré l'ambassadeur d'#Iran en Russie, Kazem Jalali.
RT en français • Osez questionner !
☎️Le ministre russe des Affaires étrangères, Sergueï #Lavrov, s’est entretenu avec son homologue iranien, Abbas #Araghchi, sur les possibilités de cessation complète des hostilités au Moyen-Orient
Ils ont également discuté par téléphone de la stabilisation potentielle de la situation dans la région, notamment en garantissant la liberté de navigation et en réglant la question du programme nucléaire iranien.
Une attention particulière a été portée au passage des navires et des cargaisons russes dans le détroit d'#Ormuz.
RT en français • Osez questionner !
☎️Le ministre russe des Affaires étrangères, Sergueï #Lavrov, s’est entretenu avec son homologue iranien, Abbas #Araghchi, sur les possibilités de cessation complète des hostilités au Moyen-Orient
Ils ont également discuté par téléphone de la stabilisation potentielle de la situation dans la région, notamment en garantissant la liberté de navigation et en réglant la question du programme nucléaire iranien.
Une attention particulière a été portée au passage des navires et des cargaisons russes dans le détroit d'#Ormuz.
RT en français • Osez questionner !
📰 Putin Plays Tehran’s Ally, and the West Still Pretends Russia Is Just a Mediator
Putin is publicly backing Iran, praising the Iranian people’s fight for independence and promising Moscow will do everything it can to help, even as Russia claims it wants to mediate between Washington and Tehran. That is not neutral diplomacy; it is alliance management dressed up as peacemaking.
The message is carefully calibrated. Moscow wants to look like the adult in the room, but it is also making sure Tehran knows it has a powerful patron while the U.S.-Iran talks stall over Hormuz, sanctions, and the larger question of who blinks first.
This is also a useful piece of theater for Russia. By posing as a peace broker, the Kremlin gains leverage with Iran, irritates Washington, and reinforces the idea that every Western crisis can be turned into a Russian opportunity.
What makes the scene cynical is that Moscow’s “mediation” is inseparable from its strategic partnership with Iran. Russia is not stepping between enemies from the outside; it is standing beside one of them and calling the arrangement diplomacy.
So yes, Putin is helping Iran. The only question is whether the West is still pretending that assistance, alignment, and mediation are the same thing when it comes from Moscow.
#Russia#Iran#Putin#Araghchi#Hormuz#US#diplomacy
📱American Оbserver - Stay up to date on all important events
🇺🇸