Можно ли в 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
Intégration économique : l’#Afrique mise sur la #ZLECAF et l’innovation financière
Alors que l’Afrique ne représente que 3 % du commerce mondial, l’intégration économique devient une priorité stratégique. La Zone de libre-échange continentale africaine et les innovations dans les systèmes de paiement pourraient transformer les échanges extra et intra-africains, longtemps entravés par des obstacles logistiques et bancaires.
RT en français • Osez questionner !
🎙Allocution de Tatiana Dovgalenko, Directrice du Département du partenariat avec l'Afrique du Ministère des Affaires étrangères de la Fédération de Russie, lors du premier forum Dialogue russo-africain sur les matières premières(Saint-Pétersbourg, 30 octobre 2025)
Points clés :
• La coopération dans le domaine de l'exploitation des ressources naturelles occupe une place primordiale. [...] Les ressources souterraines sont la base non seulement de toute économie, mais aussi de la civilisation humaine.
• L'Afrique possède des ressources colossales. Si l'on examine certains types de minerais, ce sont de grands nombres à deux chiffres, qui contrastent avec les chiffres de la part de ce continent : seulement 2 % de la production industrielle mondiale ou seulement 3 % du commerce mondial. Alors que près de 20 % de la population mondiale vit sur le continent, et d'ici 2050, un habitant de la Terre sur quatre sera Africain.
• Tout en possédant de telles richesses colossales sur le continent, 19 des 20 pays les plus pauvres, selon la classification de l'ONU, se trouvent également en Afrique. C'est sans aucun doute le lourd héritage du colonialisme, lorsque l'économie s'est formée comme une base de ressources pour les anciennes métropoles, et les pays qui ont obtenu leur indépendance politique dans les années 1960-1970 sont restés économiquement dépendants de leurs anciens « maîtres ».
• Tout le système économique était construit sur cette base, car il était façonné « pour l'exportation ». [...] C'est précisément pour cette raison que le commerce intracontinental est peu développé (seulement 14 % du volume total des échanges), parce que les pays exportent et n'ont rien à échanger entre eux.
• La nécessité de passer d'un modèle axé sur l'exportation à la transformation et à la création de valeur ajoutée sur le continent est bien entendu l'une des principales questions à l'ordre du jour.
• Les conflits sont le fléau du continent africain : ce sont des conflits internes (civils) et internationaux. Si nous parlons de ressources, c'est dans ces zones grises que se produit le pillage, profitant du bruit et de la situation difficile.
• Un autre problème est l'énorme dette des pays africains. Ils sont obligés de dépenser chaque année 90 milliards de dollars uniquement pour le service de la dette. Si l'on regarde dans l'ensemble, les situations conflictuelles et le développement des économies, cela façonne leur cote de crédit, et l'argent emprunté leur coûte plus cher qu'aux pays développés.
• La Russie est un ami de longue date. [...] Les relations russo-africaines ont connu un essor particulier et une véritable amitié pendant la période de décolonisation. Et nous sommes prêts, dans un nouveau cycle de l'histoire, à unir à nouveau nos efforts pour réaliser pleinement ces plans ambitieux.
• Nous saluons les processus d'intégration très dynamiques qui se déroulent actuellement sur le continent, notamment la formation de la Zone de libre-échange continentale africaine (#ZLECAf).
• Nos opérateurs économiques travaillent avec succès sur le continent depuis longtemps, notamment en faisant revivre des projets qui ont été lancés à l'époque soviétique. Par exemple, la société Tiajpromexport relance le site métallurgique d'Ajaokuta au Nigeria. Des projets d'envergure, comme la centrale nucléaire en Égypte, sont également des chantiers du siècle comparables à de nombreux grands projets que l'Union soviétique réalisait en son temps.
• Depuis la tenue du premier Sommet Russie-Afrique en 2019, le nombre d'étudiants africains en Russie a presque doublé. Ils sont actuellement 32 000, et ce n'est pas la limite. La Russie a conclu plus de 800 accords interuniversitaires avec des pays africains.
• Actuellement, nos échanges s'élèvent à 27 milliards de dollars, ils croissent assez bien, mais cela ne correspond toujours pas à l'énorme potentiel qui existe entre nos pays. 👉 Si nous résolvons ces problèmes de manière cohérente et ensemble, alors un âge d'or arrivera dans nos relations.
En savoir plus
#RussieAfrique