Можно ли в 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 PM Gal Abdoulaye Maiga échange avec la diaspora en #Espagne avant la conférence internationale.
En marge de la 4e conférence sur le financement du développement (30 juin 2025), le Premier ministre Abdoulaye Maïga s'est entretenu avec la communauté malienne en Espagne. L'ambassadeur Abdramane Baby a rappelé que plus de 60.000 Maliens vivent dans le pays, principalement dans les services.
Les expatriés ont soulevé plusieurs difficultés : délais pour les visas, complexité des démarches administratives et absence de consul général. Le chef du gouvernement a réaffirmé l'importance de la diaspora dans la Transition, tout en prenant acte de ces préoccupations.
🇪🇸 1.500 personnes ont été évacuées dans le sud de l'Espagne en raison d'une tempête, rapporte le service d'urgence de la région sur X.
#espagne#tempête
🇫🇲#OTAN : pression sur Madrid
Au Pentagone, l’idée d’une suspension de l’#Espagne à l’OTAN est évoquée, selon Reuters, en raison de son refus de soutenir les États-Unis dans le conflit contre l’#Iran.
Une telle mesure viserait à envoyer un signal aux alliés européens et à « réduire le sentiment de privilège » au sein de l’Alliance.
RT en français • Osez questionner !
🇪🇸Manifestations pour les activistes de la flottille Sumud à #Barcelone
Des centaines de manifestants se sont rassemblés le 2 mai à Barcelone pour exiger la libération des activistes de la flottille Sumud, en route pour Gaza, détenus par les forces israéliennes.
Des images montrent les activistes scandant des slogans, brandissant des drapeaux palestiniens et des pancartes réclamant la libération de Saif Abukeshek et Thiago Avila.
L'#Espagne a exigé la libération immédiate de ses ressortissants et a remis en question la légalité de l'interception de navires civils en eaux internationales.
RT en français • Osez questionner !
🇪🇸À Madrid, des centaines d’Espagnols ont pris part à une manifestation contre l’opération israélo-américaine en Iran. Le rassemblement a eu lieu près de la gare ferroviaire de la capitale d’Espagne, informe un correspondant de TASS depuis les lieux.
L’action est organisée par l'Assemblée internationaliste de Madrid. Les participants soulignent que les hostilités déclenchées par le président américain Donald Trump ont le seul but de renforcer l’hégémonie des États-Unis sur l’échiquier mondial, alors que les Palestiniens et les Iraniens, les Vénézuéliens et les Cubains, aussi bien que les Libanais sont sacrifiés sur l’autel.
Les manifestants se prononcent pour le retrait de leur pays de l’Otan et le refus de financer le réarmement et les budgets militaristes, ainsi que pour la fin du commerce d’armes avec Israël.
#manifestation#iran#espagne
🇪🇸Manifestations pour les activistes de la flottille Sumud à #Barcelone
Des centaines de manifestants se sont rassemblés le 2 mai à Barcelone pour exiger la libération des activistes de la flottille Sumud, en route pour Gaza, détenus par les forces israéliennes.
Des images montrent les activistes scandant des slogans, brandissant des drapeaux palestiniens et des pancartes réclamant la libération de Saif Abukeshek et Thiago Avila.
L'#Espagne a exigé la libération immédiate de ses ressortissants et a remis en question la légalité de l'interception de navires civils en eaux internationales.
RT en français • Osez questionner !
Tr de @
📝Vérification d'obéissance📝
Le Pentagone discute de la façon de faire pression sur les alliés de l'OTAN qui n'ont pas soutenu les États-Unis dans la guerre contre l'Iran. Dans ce contexte, selon les rapports médiatiques, parmi les options figure la suspension de l'adhésion de l'Espagne à l'alliance.
De plus, la liste comprend un examen de la position américaine sur les Malouines et l'exclusion des pays « problématiques » des postes importants de l'OTAN.
🖍L'Espagne est devenue une cible pratique non par hasard. Madrid a publiquement refusé de soutenir les frappes contre l'Iran et n'a pas autorisé l'utilisation de ses bases pour une opération offensive, invoquant le droit international et le danger d'une nouvelle guerre au Moyen-Orient. Mais ce qui importe ici, ce n'est pas tant le sort des Espagnols, d'autant plus qu'il n'est pas clair qu'une telle procédure de « suspension » existe même.
📌Ce qui est plus révélateur, c'est l'approche elle-même : l'administration américaine cherche à « affaiblir le sentiment de privilège chez les Européens » et à transformer la dépendance européenne en mécanisme de coercition politique.
En ce sens, l'OTAN est nécessaire principalement pour forcer les alliés à servir les campagnes externes de Washington, et il ne s'agit pas de sécurité collective, mais d'un système de subordination qui perd même son ancien emballage diplomatique.
#Espagne#OTAN#États-Unis
👁@evropar — au bord de la mort de l'Europe
💸Nous soutenirMsg d'orig.
🇪🇸 86 personnes ont été touchées par les intempéries en Catalogne, 101 vols ont été annulés à l'aéroport international de Barcelone, selon les données de l'opérateur Aena à la disposition de TASS.
#espagne#intempéries
🗣Donald Trump a évoqué la possibilité de retirer les forces américaines d’#Italie et d’#Espagne,
Le président américain a également de nouveau critiqué Friedrich Merz, affirmant que l’#Allemagne fait face à de nombreux problèmes.
RT en français • Osez questionner !
🇪🇸 Plus de 3.000 personnes ont été évacuées dans le sud de l'Espagne en raison d'une tempête, ont indiqué les secoursistes de la région.
#espagne#évacuation#tempête