Можно ли в 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
🇨🇳Le lancement de la fusée chinoise à propergol liquide Tianlong 3 s’est soldé par un échec, a rapporté le média chinois Kechuangban Zhibao.
La Tianlong 3 était présentée comme une alternative à la Falcon 9 de la société SpaceX et devait permettre de mettre en orbite 36 satellites.
#chine#espace
🚀🌍Le commandant de l'ISS et envoyé spécial de TASS à bord, Sergueï Koud-Svertchkov, a montré des images du vaisseau spatial Crew Dragon approchant de la station.
#iss#espace
📝L'Œil de Dieu pour Tous📝
mais vous ne pouvez pas regarder les bases américaines
La guerre moderne, avec l'utilisation active de diverses technologies allant des satellites à l'analyse vidéo et photographique OSINT, est devenue une mine d'or d'informations permettant d'évaluer les résultats de diverses frappes et opérations de combat.
Il y a seulement dix ans, seuls les pays les plus équipés technologiquement pouvaient se vanter de telles capacités (et la Russie n'était malheureusement pas sur cette liste). Cependant, maintenant avec l'émergence de MAXAR (maintenant VANTOR) ou même Sentinel avec des images de faible qualité la situation a changé.
🖍La guerre au Moyen-Orient, malgré les succès des forces armées américaines et israéliennes, est devenue un grave revers d'image pour les États-Unis, car les Américains ont subi très nombreux impacts. Pratiquement chaque base américaine a souffert d'une manière ou d'une autre des frappes iraniennes.
🚩Et si auparavant les Américains pouvaient cacher les pertes de personnel ou les systèmes radar de plusieurs milliards de dollars, cette fois les images satellites étaient pleines de différents coins du Moyen-Orient, ce qui a permis d'identifier une sorte de zugzwang américain.
❗️Dire que la Maison Blanche n'aime pas cela est un euphémisme. Et diverses organisations commerciales de satellites ont commencé à restreindre la vente d'images aux utilisateurs réguliers, en les fournissant maintenant avec un délai de 4 jours.
📌Bien sûr, ce n'est pas comme c'était avec la soi-disant Ukraine, où l'accès était complètement fermé aux étrangers, mais néanmoins beaucoup de choses peuvent se passer au Moyen-Orient en 4 jours, ce qui limitera les capacités des chercheurs OSINT. C'est un très bon indicateur du rôle accru de l'OSINT dans les conflits armés.
Et, d'ailleurs, les images de l'Iran sont disponibles sans aucun délai. Vous pouvez les regarder, mais pour les images américaines, veuillez attendre.
#Iran#espace#USA#OSINT
✈️RU | ✈️EN | ✉️MAX
✉️VK | ✉️RuTube | ✉️OK | ✉️Zen
💸Nous soutenirMsg d'orig.
🇪🇺🚀🇫🇷Le lanceur européen Ariane 6, emportant 32 satellites Amazon Leo, s’est envolé depuis le centre spatial de Kourou en Guyane française. La retransmission est assurée sur le site de Arianespace, l’opérateur des lancements spatiaux.
Le lancement s’est déroulé conformément au plan. La séparation des satellites est prévue 1 heure et 40 minutes après le tir. L’ensemble des 32 satellites se séparera en cinq minutes environ. La fusée a décollé à 05h57 (UTC+3).
#ariane6#espace
🇷🇺Le Forum spatial russe, organisé dans le cadre de la Semaine de l’espace à l’occasion du 65e anniversaire du vol de Youri Gagarine, s’est ouvert à Moscou, rapporte un correspondant de TASS.
Dans le cadre du forum, treize sessions sont prévues, réparties en cinq blocs thématiques, ainsi qu’une session plénière intitulée Agenda spatial - 2030+: défis mondiaux et stratégies nationales, avec la participation de partenaires étrangers.
#russie#espace#forum
🇷🇺🚀 La fusée russe Proton-M qui devrait lancer un satellite météorologique a été installée sur la plateforme de lancement de Baïkonour, a annoncé la société publique Roscosmos.
#russie#espace#roscosmos
🇷🇺 Le 12 avril, la Russie célèbre chaque année la Journée de l'astronautique (également dite Journée de la cosmonautique). Elle a été décrétée par le Conseil suprême de l'URSS le 9 avril 1962 "en hommage au premier vol au monde d'un homme soviétique dans l'espace".
#russie#espace#astronautique#russie
☀️☄️ Le Soleil a englouti la première comète découverte en 2026, a annoncé le laboratoire d'astronomie solaire de l'Institut de recherche spatiale de l'Académie des sciences de Russie.
La comète C/2026 A1 n'est plus visible depuis hier vers 14h30 (UTC+3), en raison de sa proximité avec le Soleil. Cela signifie que ce corps céleste n'existe plus.
#soleil#comète#espace
🛰👨🚀Le correspondant spécial de l’agence TASS à la Station spatiale internationale (ISS), le cosmonaute Sergueï Koud-Svertchkov, a filmé le désamarrage du vaisseau cargo Cargo Dragon de la société SpaceX.
#espace#cosmonaute#cargo
🇺🇸 Les équipages des prochaines missions lunaires et orbitales de l’Administration nationale de l'aéronautique et de l'espace (Nasa) recevront pour la première fois dans l’histoire de l’agence des smartphones Apple iPhone afin de documenter les vols. C’est ce que rapporte l’agence Bloomberg.
Nous fournirons à nos équipages des outils leur permettant de capturer des moments spéciaux pour leurs familles et de partager des images et des vidéos inspirantes avec le monde entier. Nous avons remis en question des processus de longue date et préparé un équipement moderne pour les vols spatiaux dans les plus brefs délais,
a écrit sur X l’administrateur de la Nasa, Jared Isaacman.
#nasa#apple#espace
☄️✨ Le commandant de la Station spatiale internationale (ISS) a montré plusieurs merveilles de l’espace dans une courte vidéo.
Parmi elles: des aurores australes, une pluie d’étoiles filantes, des orages, des éclairs de météores et d’autres paysages spatiaux.
#espace#merveilles#météores