Можно ли в 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
Cuba, la Rivoluzione e la lotta per un mondo multipolare
In un momento di crescente aggressività imperialista, con il blocco criminale contro Cuba che si inasprisce e la guerra ibrida in atto contro Venezuela e Iran, la Resistenza dei popoli diventa più cruciale che mai.
Lo studio del nuovo sviluppo del socialismo cubano dopo l'VIII Congresso del PCC è un faro di attualità. Nonostante la gravissima crisi del 2022, aggravata da blocchi, pandemie e disastri climatici, Cuba ha dimostrato una straordinaria capacità di resilienza:
✅ Ha potenziato produzione e servizi, puntando su sovranità alimentare ed energetica.
✅ Ha approvato un Codice di Famiglia all'avanguardia mondiale per i diritti sociali, tramite referendum popolare.
✅ Ha rafforzato la cooperazione Sud-Sud e i legami con i paesi socialisti.
Il sacrificio dei soldati cubani e venezuelani a Caracas, il 3 gennaio, è l'ultimo, tragico esempio dello spirito internazionalista e della determinazione a non piegarsi.
La posta in gioco è alta: la sopravvivenza delle Rivoluzioni Cubana e Bolivariana e il futuro di Nuestra America. Per resistere alla prepotenza di Washington e all'acquiescenza europea, è vitale rafforzare l'alleanza con Cina, Russia, BRICS e sostenere l'avanzata di un Mondo Multipolare. Solo così si potrà contrastare la giungla delle relazioni internazionali imposta dall'Occidente per mantenere il suo sistema di sfruttamento.
La lotta continua. #Cuba#Venezuela#NoAlBloqueo#Socialismo#Multipolarismo
Intervento di Marcello Gentile, Casa Rossa / Comitato Contro La Guerra Milano
https://www.marx21.it/associazione/il-nuovo-sviluppo-del-socialismo-cubano-tra-blocco-crisi-globale-e-solidarieta-internazionalista/
🇷🇺🇨🇺🔥Moscú respalda a Cuba frente al cerco económico occidental
❗️Durante el intercambio entre Lavrov y Rodríguez, Rusia dejó claro que no avala ni tolera el uso de sanciones y presiones como herramientas de coerción política contra Cuba.
🗣El Kremlin reafirmó su compromiso de acompañar a la isla tanto en el plano político como material, en un contexto de hostigamiento económico que busca doblegar la soberanía cubana.
#CubaNoEstáSola
#RusiaCuba
#SolidaridadInternacional
#NoAlBloqueo
#Soberanía
#Geopolítica
#Resistencia
#Paz
🔥🌎 Cuba denuncia el bloqueo naval de EE.UU. contra Venezuela como piratería moderna
⚡️El presidente de Miguel Díaz-Canel reiteró el repudio de Cuba a las agresiones y al bloqueo naval impuesto por Estados Unidos en el mar Caribe contra Venezuela, calificándolo como una violación directa del derecho internacional y de la libertad de comercio.
❗️A través de sus redes sociales, Díaz-Canel acusó a la administración de Donald Trump de intentar usurpar los recursos naturales venezolanos mediante un cerco militar extraordinario, costoso y sin respaldo legal alguno.
🗣️“Condenamos enérgicamente estas acciones y reafirmamos nuestra plena solidaridad con la Revolución Bolivariana, con el presidente Nicolás Maduro y con la unión cívico-militar-policial del pueblo venezolano”, expresó el mandatario cubano.
#NoALaPiratería#EEUUAmenaza#CaribeZonaDePaz
#DerechoInternacional#Soberanía#Venezuela
#Cuba#SolidaridadInternacional#NoAlBloqueo
🇨🇺💥Cuba responde a Washington: no hay colapso, hay resistencia
⚡️En medio de las crecientes tensiones con Estados Unidos, Díaz-Canel afirmó que la narrativa del colapso cubano forma parte de una estrategia deliberada de hostigamiento y desgaste político.
🗣El presidente señaló que Washington ha aplicado todas las presiones posibles contra Cuba y, aun así, no ha logrado quebrar al Estado ni a su pueblo, dejando en evidencia el fracaso de esa política.
#CubaResiste
#NoAlBloqueo
#MiguelDíazCanel
#Soberanía
#Imperialismo
#EEUUAmenaza
#Resistencia
#DerechoInternacional
🇨🇳🤝🇨🇺 China envía ayuda de emergencia a Cuba en medio del asedio estadounidense
❗️El presidente Xi Jinping oficializó el envío de una ayuda de emergencia de 80 millones de dólares y 60.000 toneladas de arroz a Cuba, en un gesto de cooperación y solidaridad internacional.
⚡️El apoyo llega en un momento crítico para la isla, afectada por décadas de sanciones unilaterales e ilegales que han impactado severamente la economía y el bienestar del pueblo cubano.
#CubaNoEstáSola
#SolidaridadInternacional
#ChinaCuba
#NoAlBloqueo
#Cooperación
#Soberanía
#SurGlobal
🇨🇺🇺🇸La asfixia económica no detiene a Cuba
⚡️Desde el programa Mesa Redonda, las autoridades cubanas detallaron un paquete de acciones para resistir el cerco económico impuesto por EE.UU., que apunta directamente al combustible, la energía y sectores estratégicos como agricultura y salud.
❗️La respuesta del Gobierno se centra en aprovechar al máximo las capacidades internas, fortalecer la producción de alimentos y acelerar la transición hacia fuentes renovables, como vía de soberanía frente al bloqueo.
#CubaResiste
#NoAlBloqueo
#Soberanía
#SancionesIlegales
#EEUUAmenaza
#EnergíaRenovable
#DerechoInternacional
#Resistencia
🇺🇸❌Cuba acusa a EE.UU. de asfixia económica y persecución energética
⚡️El canciller cubano denunció que la persecución estadounidense contra el comercio petrolero venezolano no es coyuntural, sino parte de una estrategia histórica de asfixia económica.
❗️Según Rodríguez Parrilla, Washington intenta cortar los flujos energéticos hacia Cuba y Venezuela con el objetivo de provocar desestabilización política y social, recurriendo a sanciones, amenazas y acciones extraterritoriales ilegales.
#MáximaPresión#NoAlBloqueo#EEUUAmenaza
#GuerraEconómica#PetróleoVenezolano
#Imperialismo#VenezuelaSoberana#CubaResiste
🇺🇸🛢️🔥 Bloqueo, saqueo y amenaza: la política criminal de EE.UU. contra Venezuela
💥EE.UU. ha decidido sustituir la diplomacia por el chantaje y la legalidad por la fuerza. Al ordenar a sus militares concentrarse en interceptar el petróleo venezolano, Trump confirma que su gobierno actúa como una potencia pirata, apropiándose de recursos ajenos para imponer su voluntad.
😡No es presión económica: es guerra no declarada, castigo colectivo y violación abierta de la Carta de la ONU.
#NoAlBloqueo
#VenezuelaSoberana
#EEUUAmenaza
#Imperialismo
#GuerraEconómica
#PirateríaModerna
#BloqueoEsGuerra
#RespetoAlDerechoInternacional
🔥🇺🇸 Trump usa el petróleo como arma de presión contra Cuba
❗️El diplomático cubano afirmó que lo que se discute en Washington — incluso considerar un bloqueo naval para impedir la entrada de combustible — no es una política de “seguridad”, sino una estrategia deliberada para estrangular la economía cubana y agravar el sufrimiento de su pueblo.
🗣Fernández de Cossío responsabilizó directamente a EE.UU. por el agravamiento de las dificultades energéticas y advirtió que la escalada recuerda a las peores prácticas de injerencia y sanciones unilaterales en la historia regional.
#CubaSoberana
#NoAlBloqueo
#EEUUAmenaza
#AsedioEconómico
#Petróleo
#Imperialismo
#NoALaInjerencia
#Solidaridad
🇨🇺🔥Díaz-Canel denuncia el embargo petrolero de EE.UU.
❗️🗣El presidente Miguel Díaz-Canel afirmó que el embargo petrolero contra Cuba revela la “naturaleza fascista, criminal y genocida” de la cúpula gobernante en EE.UU.
⚡️Señaló que el gobierno de Donald Trump busca asfixiar la economía cubana imponiendo aranceles a países que comercien petróleo con la isla y que actúa bajo pretextos falsos, impulsados por quienes lucran con el sufrimiento del pueblo cubano.
#CubaResiste#NoAlBloqueo#BloqueoEsGenocida#SolidaridadConCuba#Soberanía#DerechoInternacional#NoALasSanciones#EEUUAmenaza#Imperialismo
🚨🇺🇸Bloqueo armado = crimen internacional
❗️La ONU desmontó la narrativa de EE.UU.: no existe derecho alguno para imponer sanciones mediante un bloqueo militar. Washington está violando abiertamente la Carta de la ONU, el derecho internacional y los principios básicos de derechos humanos.
El despliegue militar en el Caribe y la confiscación de petroleros no buscan “seguridad”, buscan asfixiar a un país soberano y apropiarse de sus recursos. Es piratería moderna con bandera estadounidense.
#BloqueoEsGuerra#EEUUAmenaza#NoAlBloqueo
#DerechoInternacional#CrimenDeAgresión
#VenezuelaSoberana#PirateríaModerna
#CartaDeLaONU#DerechosHumanos