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

Резултати

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

Пребарај: #tunguska

当前筛选 #tunguska清除筛选
Universe Mysteries 🪐

@cosmomyst · Post #124 · 13.08.2025 г., 00:11

🪐 On June 30, 1908, a small asteroid or comet exploded over Tunguska, Siberia, flattening 2,000 square kilometers of forest in an instant. Known as the Tunguska event, this airburst was caused by an object about 50–60 meters wide—large enough to release energy more powerful than the largest nuclear bomb ever detonated, yet leaving no impact crater. ✨ #asteroids⚡#danger⚡#Tunguska⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space 👉subscribe Universe Mysteries

☄️ ¿Qué cayó del cielo en Tunguska? El misterio que aún intriga a la ciencia Un día como hoy, el 30 de junio de 1908, el cielo sobre la remota taiga siberiana se iluminó con un destello cegador. A las 7:17 de la mañana, un objeto desconocido atravesó la atmósfera y explotó sobre el río Podkámennaya Tunguska, en la actual región de Krasnoyarsk, Rusia. La explosión fue tan potente que arrasó más de 2.150 km² de bosque, derribando cerca de 80 millones de árboles como si fueran palillos de fósforo. Lo más desconcertante del llamado evento de Tunguska es que, a pesar de su fuerza (equivalente a entre 3 y 15 megatones de TNT, unas mil veces más potente que la bomba de Hiroshima), no dejó cráter. Hoy se sabe que el objeto, probablemente un asteroide de unos 50-60 metros de diámetro, explotó a unos 5-10 km de altura, liberando su energía en el aire. La onda sísmica fue registrada por estaciones en toda Eurasia, y la onda de choque dio la vuelta al planeta dos veces. En Europa y Asia, las noches siguientes fueron muy brillantes, incluso en Londres y Estocolmo se reportaron cielos iluminados por nubes noctilucentes, formadas por partículas en suspensión tras la explosión. Debido a la lejanía del lugar y a las dificultades logísticas, la primera expedición científica no llegó hasta 1927, liderada por el geólogo soviético Leonid Kulik. Su equipo encontró árboles calcinados y tumbados radialmente desde un epicentro invisible. No hallaron fragmentos del meteorito, lo que alimentó teorías de lo más variopintas: desde ovnis hasta armas secretas. Sin embargo, la ciencia moderna ha confirmado que se trató de un airburst, una explosión aérea causada por un cuerpo celeste. ¿Podría repetirse? Sí. De hecho, en 2013, un meteorito explotó sobre Cheliábinsk, también en Rusia, causando más de mil heridos por vidrios rotos. #Tunguska#HistoriaRusa#MisteriosDelEspacio#Meteoritos#CienciaYCuriosidades ¡Comparte nuestro contenido!❤️ 🖥https://vamosarusia.com 💬@vamosarusia