Можно ли в 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
Яркий и жизнерадостный Mercedes CLA 200 есть сейчас в Major Expert.
Редчайший желтый цвет. 2019 гв. Всего 25 тыс км пробег! Один единственный хозяин. 7-и ступенчатый робот, передний привод, турбомотор на 150 лс и разгон до сотни за 8 секунд.
Космическая приборка, атмосферная подсветка, черный салон с черным потолком, - в сочетании с желтым кузовом смотрится потрясающе.
Цена - 3,485 млн руб
Менеджер Кирилл @KirStar96.
#mb
Новое поступление в Major Expert. Mercedes C-class. Немецкая классика без изъяна.
2020 гв, 100 тыс пробег. 1,5 л бензиновый мотор на 150 лс и 250 Нм, классический задний привод, 9-и ступенчатая АКПП, разгон до 100 кмч за 8,6 сек
Абсолютно чистая техническая диагностика, диски 18", салон - коричневая кожа с черным потолком (выглядит отлично).
Цена - 3,175 млн руб
Менеджер Кирилл @KirStar96
#mb
Недавно прошли новости что Mercedes купил 3% в китайской Qianli Technology - разработчике систем беспилотного вождения.
Еще у Mercedes в Китае два совместных предприятия, с BAIC - Beijing Benz, самый крупный завод Mercedes в мире, строит C-Class, E-Class, GLC, EQE, EQB, EQC и с Geely - Smart Automobile, там строят смарты.
Кроме этого в самом Mercedes китайцам принадлежат почти 20%, - BAIC Group ~9,98 %, и у Geely (через Tenaciou3 / Li ShuFu) ~9,69 %.
Можно конечно сказать, что этот Mercedes уже не тот, а VW Jetta не настоящий VW, но правда в том, что производство любого немецкого бренда в большой степени китайское тоже.
Согласен - 👍
Все равно нет - 👎
#mb
Уникальная возможность въехать в Новый Год красиво (и недорого) - Mercedes-Benz GLA.
У нас богатый выбор, больше 10 машин, 2015-2021 гв, пробеги от 39 до 129 тыс, моторы 1,3-2 л, передний и полный привод.
На видео - машина 21 года, пробег 117 тыс км, передний привод с двигателем 1,3 л на 150 лс. Цена символическая (для Mercedes) - всего 2,395 млн руб.
Идеально как первая машина в подарок любимой девушке. Такие вещи не забывают.
Подробности у Кирилла @KirStar96
#mb
Для тех, кто считает, что автомобиль это только Mercedes, и хочет сделать своей любимой женщине подарок за разумные деньги, мы подготовили 17 Mercedes-Benz GLA с небольшими пробегами.
Передний или полный привод, бензиновые моторы 1,3-2 литра, 150-211 лс, годы выпуска — 2014-2021
Цены — от 1,775 до 3,64 млн руб.
Какой бы вы не выбрали, это будет настоящий Mercedes.
Подробности +7 (495) 089-05-39
Или напрямую @mickyyy13
#mb
Простыми словами — "будущее, как его представляли в 1930-х"
Таким Mercedes сделал свое купе Vision Iconic. Стиль "возвращает душу и романтику в технологии", основан на дизайне авто и авиации начала прошлого века. Внутри стекло, латунь и бархат.
В производстве дороже — нужна фрезеровка, сложные штампы, особая технология сварки. Массовым это не станет.
Как по вашему, это красиво или вообще нет?
Это супер — 👍
Ни о чем — 👎
#mb
В Мюнхене сейчас проходит автошоу AII Mobility. Там MB показал электро GLC 2026.
Полный привод, 483 лс, разгон за 4,4 сек. Батарея 94 кВт/ч, запас хода 713 км.
В салоне огромный экран Hyperscreen диагональю 39,1 дюйма от стойки до стойки. Он работает на своей MB.OS и выглядит очень приятно.
Одобряем — 👍
Как у китайцев — 👎
#mb
MB GLE - отличный респектабельный вариант на каждый день, как для мужчины так и для прекрасной дамы.
В Major Expert на выбор 31 автомобиль, от бензинового 3 л авто 2018 года за 2,835 млн, до GLE 63 AMG 2021 гв за 17,489 млн руб.
Много дизельных 3 л машин, они прекрасны с любой точки зрения, цена +/- 6 млн руб.
Выбрать можно тут
Звоните +7 (495) 089-05-39
#mb
У новых Mercedes GLS и GLE в торпедо интегрированы цифровая приборка и два раздельных экрана, через промежутки - это называется Superscreen.
Вчера Mercedes показал салон нового C-class и у него уже не Super - а Hyperscreen, один сплошной нераздельный экран на всё торпедо. Это больше чем у любого китайского авто.
Еще у нового C-Class опционально сертифицированный веганский интерьер, ни одно живое существо при его производстве не пострадало. И он конечно электрический, как бы мы к этому не относились.
Тенденции в немецком автопроме
Мне нравятся - 👍
Я их не совсем одобряю - 👎
#mb
Mercedes GLE 450 D - идеальный выбор на каждый день. Снаружи добрый, а под капотом дизельный 3-х литровый двигатель на 381 лс и разгон до сотни за 5,6 секунд.
Полный привод, адаптивная подвеска. Внешний пакет AMG Line, диски 22".
Панорамная сдвижная крыша, черный потолок, торпедо и дверные карты отделаны иск. кожей. Подогрев всех сидений, вентиляция передних, помощь при парковке и камеры кругового обзора. Адаптивный дальний свет и проекция.
Цена - от 16,63 млн руб
Менеджер Кирилл @KirStar96.
#mb
После рестайлинга Mercedes GLS 2027 получил "облачную" подвеску. На нем опционально доступна система E-Active Body Control - она управляет подвеской, рассчитывая положение колес и кузова 1000 раз в секунду, используя 5 многоядерных процессоров.
Все автомобили с этой системой сохраняют информацию о состоянии дороги в облаке, поэтому подвеска "заранее знает" о дефектах покрытия и лежачих полицейских. Когда таких машин будет много, это будет заметно.
Еще "звезды Mercedes" в фарах и задних фонарях и огромная новая приборная панель MBUX Superscreen с тремя экранами.
Подвеска - шаг вперед - 👍
Надо пробовать - 🤝
#mb
У электрического флагмана Mercedes EQS довольно средние продажи и концерн хочет оживить ситуацию рестайлингом.
Ключевые новшества - необычное рулевое колесо и впервые у МВ электронное рулевое управление по проводам, без механической связи с колесами. Надежность обеспечена резервными системами, Mercedes испытал технологию на пробеге в 1 млн км.
Для нового руля-штурвала разработана специальная подушка безопасности, он не закрывает приборную панель и может поворачиваться только на 170° - его не нужно перехватывать при рулении.
Прогрессивно - 👍
Неудобно - 👎
#mb