Можно ли в 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
В Карелии разбился истребитель Су-30 ВКС России. Самолёт упал на территории Прионежского района.
Погибли два члена экипажа. На место трагедии выдвинулись экстренные службы.
Лёгкое небо
#aviation#aircrash
12 октября произошло серьезное происшествие в районе Форт-Уэрта, Техас.
📌Легкомоторный самолет потерпел крушение вблизи аэродрома Хикс. Инцидент случился в северо-западной части города.
📌По данным от телеканала FOX4 и местных информационных агентств, при падении воздушное судно задело несколько грузовых автомобилей, что привело к возгоранию транспортных средств.
В результате крушения погибло 4 человека, причины инцидента уточняются.
Лёгкое небо
#aviation#aircrash
❕ Небольшой пассажирский самолёт разбился сразу после взлёта в аэропорту Саутенд на юго-востоке Англии, сообщает Daily Mail.
Сообщается, что он направлялся в Нидерланды. О погибших данных пока нет.
Лёгкое небо
#aviation#aircrash
Самолёт рухнул на землю и взорвался прямо на глазах у зрителей на авиашоу в ЮАР.
Сообщается, что пилот погиб, а причины крушения пока неизвестны.
Лёгкое небо
#aviation#aircrash
Наше мнение о катастрофе индийского LCA Tejas
📌Разумеется, точную причину авиакатастрофы установит специальная комиссия. Но почему бы диванным экспертам не поразмышлять
👀
⏺Если исключить возможность внезапного отказа системы или управления самолётом, наиболее вероятной причиной крушения можно считать ошибку пилота, допущенную при бочки на малой высоте.
⏺Это вторая по распространённости причина катастроф, связанных с выполнением фигур высшего пилотажа. Чаще всего они происходят после выполнения мёртвой петли или полубочки без достаточного запаса высоты.
⏺На кадрах катастрофы видно, как самолёт, «стоя на правом крыле», продолжает закручиваться в правую сторону и входит в нисходящую спираль, теряя высоту. В результате он ударяется о землю и взрывается.
Вот почему в учебниках по пилотированию настоятельно рекомендуется выполнять такие фигуры на малой высоте, с положительным тангажом и на высокой скорости. Это позволит самолёту сохранить высоту и избежать штопора.
Однако в истории авиации есть много подобных трагедий, которые, к сожалению, повторяются с пугающей частотой.
Лёгкое небо
#aircrash#DAS25#aviation#aviation
Трагедия Ту-154 в Шардже: что случилось 15 декабря 1997 года?
15 декабря 1997 года Ту-154 авиакомпании "Таджик Эйр" потерпел крушение при заходе на посадку в аэропорту Шарджи (ОАЭ). Это событие унесло жизни 85 человек, став одним из крупнейших происшествий для таджикской авиации. 🕯
📌Хронология:
Рейс направлялся из Душанбе в Шарджу. Приближаясь к аэропорту, экипаж выполнял посадку в ночных условиях. Однако при снижении самолет столкнулся с песчаной дюной примерно в 13 километрах от взлетно-посадочной полосы. Все находившиеся на борту 79 пассажиров и 6 членов экипажа погибли.
📌Причины катастрофы
Расследование показало, что основными причинами трагедии стали:
⏺Ошибка экипажа. Неправильное выполнение процедуры захода на посадку привело к критическому снижению высоты.
⏺Отсутствие точной координации. Экипажу не хватило слаженности в действиях при выполнении ночного захода.
⏺Сложные условия. Слабая видимость и сложная навигационная обстановка в районе аэропорта также сыграли свою роль.
❗️Эта трагедия напомнила миру о важности строгого соблюдения правил безопасности и профессиональной подготовки экипажа.
Память о жертвах той катастрофы жива и по сей день, а история Ту-154 в Шардже продолжает служить уроком для авиационной отрасли. ✈️
Лёгкое небо
#aviation#aircrash#авиакатастрофа
❗️A330 Hainan Airlines повредил руль направления SSJ100 авиакомпании Россия
📌Самолёт резко затормозил, на борту в этот момент было около 100 пассажиров. Людей почти 40 минут держали в салоне, после чего эвакуировали обратно в терминал, а борт отбуксировали на стоянку.
🔹По предварительным данным Airbus A330 Hainan Airlines, вылетающий в Пекин, во время руления совершил соударение с хвостовой частью Superjet 100 (рег.RA-89112), вылетающего в Санкт-Петербург рейсом FV6097.
Вопреки сообщениям из других СМИ, борт находился на стоянке
Лёгкое небо
#aviation#aircrash#ssj
Cessna Citation III разбилась в Мексике
📌Погибли не менее семи человек, сообщают местные СМИ.
⏺Джет Cessna Citation III потерпел крушение недалеко от аэропорта Толука. Он влетел в автомастерскую.
Лёгкое небо
#aircrash#Cessna#aviation
Предлагаем объединить все известное о крушении 787-8 в одном посте🕊
📌Потерпел крушение Boeing 787-8 Dreamliner (Б/Н VT-ANB)
⏺Борт выполнял рейс AI171 из Ахмедабада в Лондон.
⏺На борту находилось 230 пассажиров и 12 членов экипажа.
⏺Самолёт потерпел крушение через пол минуты после взлёта.
⏺Сообщается, что экипаж рейса Air India AI171 подал сигнал бедствия в службу управления воздушным движением, но после этого не реагировал на вызовы, поступавшие из Центра управления воздушным движением.
⏺Согласно информации из СМИ, удалось выжить лишь одному пассажиру.
⏺Причиной крушения вероятно стал отказ обоих двигателей, невыпуск закрылок перед взлётом или их самопроизвольная уборка после взлёта.
Лёгкое небо | Донат
#aviation#aircrash#B787
🇮🇳 Boeing 787 Air India разбился в Ахмедабаде
📌По одной информации это был самолёт Boeing 787-8 Dreamliner с б/н VT-ANB, выполнявший рейс Ахмедабад — Лондон, разбился спустя минуты после взлёта. На борту, по предварительной информации, находились 242 пассажира.
📌По другой информации разбился Airbus A320. Об этом сообщает телеканал NDTV. По данным News18 на борту находилось 130 человек.
🔄 Никто не выжил среди 242 человек сообщил Комиссар полиции города Ахмадабад. Он уточнил, что это предварительные данные.
Лёгкое небо
#aviation#aircrash#B787
Предварительный отчёт рейса Air India AI171 ✈️
12 июня потерпел крушение Boeing 787-8 авиакомпании Air India. Самолет, выполнявший рейс AI171 из Ахмедабада в Лондон, рухнул сразу после взлета, унеся жизни всех 242 человек на борту и еще 19 человек на земле.
📌Самолет оторвался от полосы в 08:08:39 UTC и набрал максимальную скорость 180 узлов. Но через считанные секунды произошло нечто невероятное — топливные краны обоих двигателей перешли (или были переведены?) в положение “CUTOFF” с интервалом в одну секунду.
⏺В записи переговоров экипажа слышно, как один из пилотов спрашивает другого:
One of the pilots is heard asking the other why did he cutoff.
The other pilot responded that he did not do so.
⏺После перекрытия топлива был выпущен турбогенератор аварийного питания (RAT) — это видно на камерах видеонаблюдения аэропорта. Пилоты отчаянно боролись за жизнь пассажиров: через несколько секунд они попытались вернуть топливные краны в рабочее положение (RUN) .
⏺Двигатели начали процедуру повторного запуска в воздухе — первый двигатель показал признаки восстановления, второй также начал запускаться, но не смог остановить падение оборотов. Самолет терял высоту, и в 08:09:05 UTC прозвучал сигнал бедствия:
MAYDAY MAYDAY MAYDAY
⏺Самолет врезался в общежитие медицинского колледжа всего в 1,5 км от аэропорта. B788 полностью разрушился, обломки разбросало на площади 300 на 120 метров. Пострадали пять зданий, которые получили серьезные повреждения от ударов и последующего пожара.
⏺Расследование продолжается, но уже сейчас ясно — это могла быть ошибка пилотов, но для такого опытного экипажа - маловероятно.
Опытный командир с налетом более 15 000 часов и второй пилот с 3 400 часами опыта столкнулись с аномальной ситуацией. Топливные краны перешли в положение отсечки без команды экипажа.
⏺Интересно, что еще в 2018 году FAA выпустило предупреждение о возможных проблемах с блокировкой топливных кранов на Boeing 737 (аналогичная система установлена на 787-8). Air India не проводила рекомендованные проверки, поскольку они носили лишь рекомендательный характер.
📌Эта катастрофа поднимает серьезные вопросы о безопасности современных авиационных систем и может привести к пересмотру процедур технического обслуживания по всему миру.
Предварительный отчёт опубликован в комментариях
Лёгкое небо
#aviation#aircrash#AirIndia
Два самолёта пилотажной группы Patrouille de France столкнулись над французским городом Сен-Дизье.
Это произошло во время тренировочного полёта. Пилоты успели катапультироваться, пишут местные СМИ. Один из самолётов упал на территории предприятия, там вспыхнул пожар.
Лёгкое небо | Подписаться
#aviation#aircrash#France