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

Пребарај: #cosacosdeldon

当前筛选 #cosacosdeldon清除筛选

⚔️ El sitio de Azov: la épica resistencia de los cosacos del Don En junio de 1637, un grupo de cosacos del Don, junto con sus aliados de Zaporozhie, protagonizaron una de las gestas más audaces de la historia militar rusa: la toma de la fortaleza turca de Azov. Esta ciudad, ubicada en la desembocadura del río Don, era entonces una pieza clave en el dominio otomano del mar de Azov y una base estratégica para las incursiones tártaras en el sur de Rusia. La fortaleza, construida por los otomanos en 1475 sobre las ruinas de la antigua colonia genovesa de Tana, contaba con murallas de piedra, 11 torres y más de 200 cañones. Su guarnición estaba formada por 4.000 jenízaros, soldados de élite del Imperio otomano. Pero ni la artillería ni la superioridad numérica impidieron que los cosacos, con apenas 7.000 hombres y cuatro cañones ligeros, lograran lo impensable: tomar Azov por asalto el 18 de junio de 1637. Durante cinco años, los cosacos defendieron heroicamente la fortaleza frente a los intentos de reconquista otomana. El más brutal fue en 1641, cuando el sultán Ibrahim envió un ejército de entre 70.000 y 240.000 hombres, según las fuentes, para recuperar Azov. El asedio fue feroz: bombardeos constantes, ataques nocturnos y una resistencia que se convirtió en leyenda. Los cosacos, incluso con mujeres entre sus filas, repelieron el ataque con una determinación que asombró a Europa. Sin embargo, la gloria tuvo un precio. En 1642, ante la negativa del zar Miguel I de Rusia de apoyar oficialmente la defensa —por temor a una guerra abierta con el Imperio otomano— los cosacos se vieron obligados a abandonar la fortaleza. Azov volvió a manos turcas, pero la hazaña quedó grabada en la memoria colectiva como “El sitio de Azov”. Este episodio marcó un punto de inflexión en la historia de los cosacos del Don, un pueblo libre y guerrero que desde el siglo XVI protegía las fronteras del sur de Rusia. Su valentía en Azov anticipó las futuras campañas del zar Pedro el Grande, quien en 1696 retomaría la ciudad como parte de su ambicioso plan de expansión hacia el mar Negro. Hoy, la fortaleza de Azov es un sitio histórico en el óblast de Rostov, Rusia. Aunque solo quedan fragmentos de muralla y la puerta Alekséyevski, su legado sigue vivo en la cultura cosaca, en las canciones que celebran la libertad y en la memoria de un pueblo que desafió a uno de los imperios más poderosos de su tiempo. #HistoriaRusa#CosacosDelDon#Azov#ImperioOtomano#TelegramHistoria ¡Comparte nuestro contenido!❤️ 🖥https://vamosarusia.com 💬@vamosarusia