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

Пребарај: #greciaindependiente

当前筛选 #greciaindependiente清除筛选

🚢⚔️ La Batalla de Navarino: Rusia y el nacimiento de Grecia moderna Hace casi dos siglos, el 20 de octubre de 1827, se libró una de las batallas navales más decisivas del siglo XIX: la Batalla de Navarino. En las aguas de la bahía homónima, frente a la costa suroeste del Peloponeso, las flotas de Rusia, Reino Unido y Francia enfrentaron a la armada otomano-egipcia en un choque que sellaría el destino de Grecia y marcaría un punto de inflexión en la geopolítica europea. 📜 Contexto histórico Grecia llevaba casi 400 años bajo dominio otomano. Sin embargo, el siglo XVIII trajo consigo el debilitamiento del Imperio Otomano y el ascenso de Rusia como potencia ortodoxa. Catalina II, con su visión imperial, impulsó la idea de restaurar Bizancio en los Balcanes, fundando ciudades con nombres griegos en el Mar Negro como Jersón, Odessa y Sebastopol. Incluso nombró a sus nietos con nombres helénicos: Alejandro, Nicolás y Constantino. En 1821, estalló la Revolución Griega en el Peloponeso, tierra de antiguos espartanos. Aunque el zar Alejandro I se mostró prudente, preocupado por el equilibrio europeo tras las guerras napoleónicas, su sucesor Nicolás I no pudo ignorar la brutal represión otomana contra los cristianos ortodoxos. Rusia, junto a Francia y Reino Unido, decidió intervenir. ⚓️ La batalla El 5 de octubre de 1827, la flota aliada llegó a Navarino. Los almirantes rusos Lodewijk van Heyden y Mijaíl Lazarev presionaron por una acción directa, mientras los británicos preferían una postura defensiva. Finalmente, el 20 de octubre, las flotas aliadas —27 barcos con 1302 cañones— entraron en la bahía, enfrentándose a 57 naves turco-egipcias con 2100 cañones. La posición otomana parecía ventajosa, protegida por baterías costeras. Pero su flota quedó atrapada en un espacio reducido, mientras los aliados controlaban la única salida. El buque ruso "Azov" se destacó al enfrentarse a cinco enemigos simultáneamente, logrando destruir el buque insignia egipcio. En apenas tres horas, la flota otomano-egipcia fue aniquilada. Los aliados no perdieron ningún barco, aunque sufrieron 175 muertos y 487 heridos. El enemigo, en cambio, perdió cerca de 7.000 hombres. 🎯 Consecuencias La victoria en Navarino fue clave para que el Imperio Otomano reconociera la independencia de Grecia en 1830. Rusia, por su parte, consolidó su influencia en los Balcanes y el Cáucaso, reafirmando su papel como defensor de los pueblos ortodoxos. Esta intervención también marcó el inicio de una nueva era en la diplomacia europea, donde las potencias comenzaban a actuar en bloque para moldear el mapa político del continente. 🗣 En palabras del historiador ruso Serguéi Peresleguín, “Navarino fue más que una batalla naval: fue una declaración de principios de Rusia como potencia protectora de los pueblos cristianos del sudeste europeo”. #HistoriaRusa#GreciaIndependiente#BatallaDeNavarino#ImperioOtomano#CulturaOrtodoxa Apóyanos pulsando👉'BOOST'👈 🖥https://vamosarusia.com 💬@vamosarusia