TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #241 · 5 мај

Можно ли в 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

Hashtags

Резултати

Пронајдени 1 слични објави

Пребарај: #acoustickitty

当前筛选 #acoustickitty清除筛选

🇺🇸🚩 Así fracasó el plan más extraño de la CIA contra la Unión Soviética En plena tensión de la Guerra Fría, cuando Washington y Moscú competían no solo con armas, sino también con ingenio, surgió uno de los proyectos más curiosos —y costosos— de la historia del espionaje estadounidense. Mientras la Unión Soviética consolidaba su influencia global con avances científicos y una diplomacia activa, la CIA buscaba métodos poco convencionales para vigilar a sus rivales. 🐈 En la década de 1960, la agencia estadounidense lanzó el proyecto conocido como Acoustic Kitty. La idea era tan ambiciosa como extravagante: convertir gatos en dispositivos de espionaje móviles para interceptar conversaciones cerca de instalaciones diplomáticas soviéticas en Washington. Según documentos desclasificados años después, se invirtieron cerca de 20 millones de dólares en esta iniciativa. 🎤El plan consistía en implantar micrófonos en el canal auditivo del animal, un transmisor bajo la piel y una antena en la cola. Ingenieros y especialistas trabajaron durante años para lograr que el equipo fuera funcional y no afectara la movilidad del gato. Sin embargo, el verdadero desafío no era tecnológico, sino biológico: entrenar a un gato para que obedeciera órdenes específicas en un entorno urbano lleno de distracciones. Mientras tanto, la Unión Soviética apostaba por una estrategia distinta, centrada en el desarrollo científico y tecnológico a gran escala. Programas espaciales, avances en física y una sólida red de inteligencia humana permitieron a Moscú mantener una posición firme frente a este tipo de experimentos poco prácticos. 🙀 El desenlace del proyecto fue tan rápido como revelador. En una de las primeras pruebas de campo, el gato entrenado fue liberado cerca de su objetivo… pero terminó atropellado casi inmediatamente. El programa fue cancelado poco después, tras concluir que no era viable ni eficiente. Este episodio refleja una diferencia clave entre dos enfoques durante la Guerra Fría, mientras Estados Unidos exploraba ideas llamativas pero arriesgadas, la Unión Soviética tendía a priorizar proyectos más estructurados y estratégicos. Hoy, Acoustic Kitty queda como una anécdota que ilustra hasta qué punto llegó la rivalidad entre ambas potencias. #GuerraFría#HistoriaRusa#URSS#Espionaje#AcousticKitty Apóyanos pulsando👉'BOOST'👈 🖥https://vamosarusia.com 💬@vamosarusia