Можно ли в 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
✅ Эксперты Хенш провели диагностический аудит и обучение персонала по стандарту ISO 9001:2015 в Московском областном перинатальном центре (МОПЦ), которое является ведущим в России.
🕰История развития системы менеджмента качества (СМК) на основе ISO 9001 в данном центре насчитывает более 10 лет. При этом руководство центра большое значение придает повышению эффективности системы менеджмента и ее обновлению с учетом актуальных требований, в том числе к внутреннему контролю качества и безопасности медицинской деятельности.
Представители Хенш отметили высокий потенциал центра и высокий уровень мотивации персонала на улучшения.
‼️Поздравляем МОПЦ с получением заслуженной награды "Первые лица" в рамках поддержки Министерства здравоохранения Российской Федерации‼️
Ознакомиться с новостью по ссылке: https://mopc.ru/news/nagrazhdenie-laureatov-ix-vserossiyskoy-premii-v-oblasti-perinatalnoy-mediciny
#ISO
🖋 Зачем в колпачке ручки дырка
Наш опрос показал: большинство знает правильный ответ. Действительно, отверстие в колпачке — это не прихоть дизайнеров, а важная мера безопасности. Но давайте разберёмся в деталях.
🫁 Всё дело в безопасности. Отверстие в колпачке — обязательный международный стандарт. Если колпачок случайно проглотить и он застрянет в горле, дырка пропустит воздух. Это даёт несколько дополнительных минут до приезда врачей — независимо от того, ребёнок ты или взрослый.
📜 История стандарта. Меру ввели в 1990-х годах, когда статистика несчастных случаев с колпачком стала пугающей. Сегодня это требование ISO распространяется на все ручки, которые продаются в большинстве стран мира.
📌 Мелочь, а приятно
Самая неожиданная деталь привычных вещей часто связана не с удобством, а с безопасностью. И хорошо, что это продумано даже в таких мелочах.
#Ручки#Безопасность#Канцелярия#ISO
ISO and IEC Make Foundational Standard on Artificial Intelligence Publicly Available
Hello, everyone! The International Organisation for Standardization (ISO) and the International Electrotechnical Commission (IEC) have made ISO/IEC 22989, a critical AI standard, accessible to the public.
This foundational standard defines over 110 essential AI concepts, including 'datasets', 'AI agents', 'transparency', and 'explainability'.
ISO/IEC 22989 provides conceptual guidance for Natural Language Processing (NLP) and Computer Vision (CV) models. Its goal is to establish a shared vocabulary, terminology, and framework for AI concepts, promoting fruitful discussions among stakeholders.
Here's a snapshot of key definitions:
- AI System
- Artificial General Intelligence (AGI)
- AI Auditor
- Robustness
- Explainability
- Predictability
- Transparency
- Trustworthiness
As AI regulations surge worldwide, standardization becomes a vital need, especially in the absence of global alignment in regulatory language.
#AIStandards#AI#ISO#IEC#AICommunity
Ventoy
https://www.ventoy.net/en/index.html
Ventoy is an open source tool to create bootable USB drive for ISO/WIM/IMG/VHD(x)/EFI files.
With ventoy, you don't need to format the disk over and over, you just need to copy the ISO/WIM/IMG/VHD(x)/EFI files to the USB drive and boot them directly.
You can copy many files at a time and ventoy will give you a boot menu to select them (screenshot).
x86 Legacy BIOS, IA32 UEFI, x86_64 UEFI, ARM64 UEFI and MIPS64EL UEFI are supported in the same way.
Most type of OS supported (Windows/WinPE/Linux/Unix/VMware/Xen...)
#Ventoy#bootableUSBdrive#ISO#OpenSource
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