Можно ли в 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
ДТП на улице Лисковской, 6:
Водитель автомобиля #Subaru не справился с управлением и автомобиль начало заносить. Вначале въехал во встречное авто, а затем - в припаркованные.
Фото: Vasiliy Gapienko
Subaru обновила Outback. Кузов стал больше внедорожником, чем универсалом. В салоне - новая мультимедиа система, среди опций появилась вентиляция сидений. В базе в салоне искусственная кожа, но опционально доступна Наппа.
Рестайлинг не коснулся техники - под капотом тот же 2,4 л турбированный двигатель на 260 лс, полный привод и вариатор.
Subaru говорит о том, что Outback стал "более премиальным", но кажется этого нет и рядом.
Нравится - 👍
Не очень - 👎
#subaru
Subaru WRX STI - объект обожания всех уличных гонщиков тоже вот-вот вернется в производство. На сайте Subaru написано - «Скоро в продаже». На токийском салоне компания показала очередной прототип WRX STI Sport Prototype, он выглядит унылым и готовым к производству.
2,4 л бензиновый мотор, пока с неизвестной отдачей. На обычном WRX он выдает 271 лс, на STI по идее должно быть больше. Механическая коробка и полный привод. Хорошо, что он возвращается, но плохо, что он выглядит также скучно как и раньше.
Нравится - 👍
Не нравится - 👎
#subaru
Ураганную Subaru WRX STI не делают с 2021. Последняя генерация в стоке имела 2,5 л мотор на 310 лс и 393 Нм. Её тюнинговали изо всех сил и встречались экземпляры с 700 или даже 1000 лс.
WRX STI была легендой и разрывала чемпионаты. В 2021-м японцы решили, что наступило время экологии и электричества и остановили производство.
Но передумали. В Токио Subaru показала сразу два STI-концепта. Один все-таки электрический, другой с 2,5 л бензиновым мотором, значит легенда вернется.
#subaru
Subaru unveils Project Midnight, the fastest WRX in history .
🔥 With a 2-liter racing flat-four engine boosted to 670 hp and 680 Nm of torque, this beast revs up to an impressive 9500 rpm .
🚗💨 Weighing only 1120 kg thanks to a carbon fiber body, it sheds a whopping 453 kg for lightning-fast performance .
⚡️ And of course, it's equipped with all-wheel drive for that perfect grip! Don't miss the live debut at the Goodwood Festival of Speed 🏁
#Subaru#ProjectMidnight#WRX#GoodwoodFoS#Auto🏎💥
SUBARU диктует международные стандарты БПЛА
Aвтоконцерн SUBARU добился признания собственных решений для предотвращения столкновения дронов в качестве стандарта Международной организации по стандартизации ISO21384-3 (Беспилотные летающие системы: управление и процедуры).
Стандарты ISO - это универсальные требования, на которые в том числе должны ориентироваться мировые производители в быстрорастущей отрасли беспилотных летательных аппаратов (БПЛА).
Объем мирового рынка БПЛА оценивается в 22 млрд долл., а к 2029 году он должен вырасти до 41 млрд долл. На Японию приходится около 3 млрд долл. с перспективой роста до 5,5 млрд долл. к 2028 году.
Как любой другой быстрорастущий новый рынок, индустрия БПЛА ощущает острый недостаток международных правил и регулирования.
Правительство и бизнес Японии прикладывают значительные усилия для развития рынка БПЛА. Помимо военных заказов, рынок БПЛА Японии растет за счет активного использования беспилотных систем в коммерческом секторе, сельском хозяйстве, пожаротушении и помощи при стихийных бедствиях.
Основными производителями дронов являются компании Yamaha Motor, NTT e-drone Technology, PRODRONE, Mazex.
Международное признание стандарта SUBARU, обеспечит этой компании определенные преимущества на мировом рынке на ближайшую перспективу.
Концерн SUBARU начинал свою деятельность в 1920-е годы в качестве поставщика авиатехники и комплектующих, и по сей день производит вертолеты, и является важным звеном в производственной цепочке самолетов Boeing.
Признанное в качестве международного стандарта ноу-хау SUBARU, заключается в разработке особого алгоритма избегания препятствий, который на данном этапе распространяется на БПЛА-доставщики грузов, однако в будущем может быть тиражирован и на другие беспилотные летающие системы.
Положительное решение в пользу японского подхода было обусловлено простотой системы, которая снижает риски ошибок при практическом применении.
#Япония#БПЛА#ISO#стандарты#SUBARU