Можно ли в 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
¡Tómala! 💣💥
🔴 Milenio compartió la supuesta foto de los agentes de la #CIA que murieron tras un operativo 📸👀 | Esto respondió la Fiscalía de Chihuahua 📄🤯👇🏻
https://sinlineamx.com/filtran-foto-agentes-cia-que-murieron-chihuahua/
¿Será? 🤔
🔴 La Fiscalía de Chihuahua señaló que los agentes de la #CIA sí participaron en el hallazgo de un narcolaboratorio, pero no de manera activa 📄👀
https://revistaelpolitico.com/nacional/fge-advierte-colaboracion-extraoficial-agentes-cia-chihuahua/
Проект Tor:
https://torproject.org
Скрытый Tor-сайт ЦРУ:
ciadotgov4sjwlzihbbgxnqg3xiyrg7so2r2o3lt5wz5ypk4sxyjstad.onion
cia dot gov 4sj wlz ihb
bgx nqg 3xi yrg 7so 2r2
o3l t5w z5y pk4 sxy jstad.onion
ЦРУ считает своим долгом заботу о безопасности людей, которые идут на контакт. Подлинность наших пабликов в социальных сетях была подтверждена, используя официальный метод каждой из платформ. Это – официальный Телеграмм-канал ЦРУ. Ссылка на него имеется в описании пабликов ЦРУ в других социальных сетях: Facebook, Instagram и X (ранее Twitter). Будьте осторожны с любыми другими каналами, которые утверждают, что они представляют ЦРУ. Проверяйте официальные списки наших пабликов. И не забывайте, что мошенники могут использовать названия каналов, которые очень схожи по написанию с официальными сайтами ЦРУ.
Our global mission demands that individuals be able to reach out to #CIA securely from anywhere. This video shows a fictionalized Russian making the difficult but important decision to secretly contact CIA. At CIA, we have a solemn duty to protect those who work with us around the world. If you’re reaching out to CIA to share information about Russia, please do so securely via our portal on the dark web. When possible, CIA has verified its social media accounts through each platform’s official process. This is CIA’s official Telegram channel. The link is included in the bios of CIA’s other social media accounts: Facebook, Instagram, and X (formerly Twitter). Be cautious of other accounts that claim to represent CIA, check the official listings of CIA’s public accounts, and be aware that fraudulent accounts may use misspelled account names that closely resemble official CIA sites.
Проект Tor:
https://torproject.org
Скрытый Tor-сайт ЦРУ:
ciadotgov4sjwlzihbbgxnqg3xiyrg7so2r2o3lt5wz5ypk4sxyjstad.onion
cia dot gov 4sj wlz ihb
bgx nqg 3xi yrg 7so 2r2
o3l t5w z5y pk4 sxy jstad.onion
ЦРУ со всей серьезностью заботится о безопасности людей, которые идут с нами на контакт. Если была такая возможность, ЦРУ подтвердило подлинность наших пабликов в социальных сетях, используя официальный метод каждой из платформ. Это – официальный Телеграмм-канал ЦРУ. Ссылка на него имеется в описании пабликов ЦРУ в других социальных сетях: Facebook, Instagram, и X (ранее Twitter). Будьте осторожны с любыми каналами, которые утверждают, что они представляют ЦРУ. Проверяйте официальные списки наших пабликов. И не забывайте, что мошенники могут использовать названия каналов, которые очень схожи по написанию с официальными сайтами ЦРУ.
Our global mission demands that individuals be able to reach out to #CIA securely from anywhere. This video shows a fictionalized Russian making the difficult but important decision to secretly contact CIA. At CIA, we have a solemn duty to protect those who work with us around the world. If you’re reaching out to CIA to share information about Russia, please do so securely via our portal on the dark web. When possible, CIA has verified its social media accounts through each platform’s official process. This is CIA’s official Telegram channel. The link is included in the bios of CIA’s other social media accounts: Facebook, Instagram, and X (formerly Twitter). Be cautious of other accounts that claim to represent CIA, check the official listings of CIA’s public accounts, and be aware that fraudulent accounts may use misspelled account names that closely resemble official CIA sites.
#CIA is providing instructions in multiple languages on how to securely contact us. Our global mission demands that individuals be able to reach CIA securely from anywhere. Be cautious of accounts that claim to represent CIA, check the official listings of our public accounts, and be aware that fraudulent accounts may use misspelled account names that closely resemble official CIA sites.
CIA秘密部署“幽灵低语”AI系统 成功参与营救在伊朗失踪的美军飞行员
美国中央情报局动用“幽灵低语”系统成功搜救失踪美军空军官兵。伊朗境内发现F-15E“打击鹰”战斗轰炸机上弹射逃生后被拦截,两名机组成员被美军营救。飞行员在坠机后24小时才被找到,武器系统官则在24小时之后被寻获。
标签:#cia
Created by RocM
官方频道:@rocCHL
官方群组:@roctech
官方合作:@rocmmbot
Former CIA Director John Brennan said Saturday that he believed the 25th Amendment "was written with" President Trump "in mind," comments that come after multiple Democrats pushed for Trump’s ouster following his intense threats toward Iran. 🇺🇸📜
"I think the 25th Amendment was written with Donald Trumps in mind, because allowing someone like this to continue to be the commander-in-chief and to control the tremendous capabilities of the U.S. military, including our nuclear weapons capability, which he seemed to allude to when he said he's going to just eliminate a entire civilization,"
Brennan told MS NOW's Ali Velshi on his show. 💣🎙
"Again, we really are in very, very troubling times,"
he added. ⚠️
#Trump#CIA
👂More on Trump's Ear ⚠️
Two major reports have reignited debate over Ukraine’s corruption and Washington’s involvement in гthe country’s affairs. Both suggest that, despite massive Western funding and years of reform pledges, graft remains entrenched in Kyiv’s political system and defense industry.
#CIA#Ukraine
👂More on Trump's Ear ⚠️
In the days leading up to President Donald Trump’s Aug. 15 Alaska summit with Russian President Vladimir Putin, one of the CIA’s senior-most Russia experts worked grueling hours, helping Trump and his team prepare for high-stakes diplomacy over Ukraine and making sure they were adequately briefed, according to a former agency colleague.
Four days later, the CIA officer — whom The Washington Post is not naming for her protection — was at work at the spy agency’s Langley headquarters when she was abruptly ordered to report to the security office. She was informed that her clearance to look at classified material was being stripped. In a span of minutes, her 29-year career in public service was essentially over.
#Trump#CIA#Russia
👂More on Trump's Ear ⚠️
¡Se le hizo bolas el engrudo!
🔴Resulta que la gobernadora de Chihuahua, #MaruCampos sigue en el ojo del huracán, pues lejos de aclarar la intromisión de los agentes de la #CIA, dejó más dudas.
La mandataria estatal anunció una “comisión” para ser “investigada” que ella eligió 🙅♀️