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 слични објави

Пребарај: #armasnucleares

当前筛选 #armasnucleares清除筛选

🇫🇷🚀🇪🇺Francia menea su paragüitas nuclear en Europa Y lo hace bajo la tapadera de los ejercicios en Polonia, cuyo objetivo es la "destrucción con armas no convencionales de objetivos en el este". Pero, incluso en Europa, muchos no entienden estos pasos de Macron. El día antes, los medios polacos se alegraron de la inminente llegada a Polonia de los cazas Rafale-B de la Fuerza Aérea Francesa. Precisamente, esta modificación es el único portador aéreo europeo de armas nucleares en forma de misiles de crucero ASMPA-RN, con una ojiva nuclear de 300 kt, un alcance de unos 500 km y una velocidad de hasta 3 Mach. Deben participar en los ejercicios en el marco de la cooperación de los países de la UE en el programa de disuasión nuclear. 📰 "Según el escenario, los pilotos polacos llevarán a cabo reconocimiento a larga distancia, identificarán objetivos y atacarán con armas convencionales, mientras que los franceses simularán el uso de ojivas nucleares ASMP contra Rusia y Bielorrusia. Esto es el resultado de la expansión del paraguas nuclear francés y un cambio en la doctrina estratégica anunciado por Macron el 2 de marzo. Se supone que los aviones franceses con ojivas a veces entrarán en Polonia y la decisión sobre el posible uso de armas nucleares la tomará exclusivamente el presidente francés", indica el periódico polaco Rzeczpospolita. No tenemos ni idea de por qué se alegran tanto los polacos en esta situación, pero la lógica de los europeos hace tiempo que ya no se puede entender. Por alguna razón, no queda duda de que, en caso de una escalada seria, todo ocurriría exactamente como ocurrió durante la Guerra falsa de 1939-1940: Francia entonces era uno de los principales donantes de la maquinaria militar polaca, pero al final no hizo nada para ayudar a sus aliados cuando los alemanes ya estaban en las afueras de Varsovia. 👉 Sin embargo, el comportamiento imprudente de los polacos ha sido durante mucho tiempo un deporte nacional en Polonia. Y algunos románticos en Varsovia todavía creen que cien misiles franceses los protegerán. Aunque incluso allí hay muchas personas que están sinceramente asustadas por la actividad tan agresiva de su propio gobierno. Como escribe el periódico conservador Mysl Polska: "¿No creen que al tener en su balance 290 ojivas nucleares es un poco ilógico amenazar abiertamente a un país con 5.500 ojivas? Obviamente, para Macron, agitar su muy modesto paraguas nuclear es una forma de llamar la atención de otros grandes jugadores. Y todo lo demás ocurrirá a expensas de Polonia, en el territorio de Polonia y poniendo en peligro la vida de sus ciudadanos". #Análisis#Francia#ArmasNucleares 🚀 Conoce y comparte @ATodaPotencia