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

Резултати

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

Пребарај: #residents

当前筛选 #residents清除筛选
AyTi Markaz Yaypan

@ITCenter_Yaypan · Post #1460 · 24.02.2023 г., 10:45

#ITPark#Residents 🚀 Eslatib o'tamiz, IT mutaxassislari uchun onlayn marafon boshlanmoqda ✅ IT Park rezidenti “AMEGA ITS” MCHJ “Business Intelligence Qlik” yo‘nalishidagi dasturiy ta’minot vendori bilan birgalikda Toshkentda xorijiy va mahalliy ekspertlar ishtirokida onlayn o‘quv marafonini tashkil qiladi. ✅ Oʻquv dasturida ishtirok etish uchun IT-kompaniyalar tomonidan ham, davlat va tijorat tashkilotlari tomonidan ham barcha darajadagi va yoʻnalishdagi rahbarlar, IT mutaxassislari taklif etiladi. Oʻquv dasturi 12 ta moduldan iborat boʻladi. Marafon ishtirokchilarini nazariya, amaliyot va real tatbiq holatlari kutmoqda. Sana: 1-17-martgacha Format: Onlayn Narxi: Bepul Til: O'zbek va Rus tillarida Ro'yxatdano'tishmuddati: 28-fevral, 15:00 gacha Havola: https://dataroad.uz/ru#abouthttps://dataroad.uz/ru%23about Batafsil: https://bit.ly/3xpzsOY _____________ 🚀 Напоминаем, что стартует онлайн-марафон для IT-специалистов ✅ Резидент IT Park OOO «AMEGA ITS» совместно с вендором программного обеспечения в направлении Business Intelligence Qlik организуют в Ташкенте обучающий онлайн-марафон с участием зарубежных и локальных экспертов. ✅ К участию приглашаются руководители, IT-специалисты всех уровней и направлений как со стороны IT-компаний, так и со стороны государственных и коммерческих организаций. Программа обучения включает в себя 12 модулей. Участников марафона ждут теория, практика и кейсы реальных внедрений. Даты: с 1 по 17 марта Формат: онлайн Стоимость: участие бесплатно Язык: русский и узбекский Дедлайн регистрации: до 28 февраля 15:00 Регистрация: https://dataroad.uz/ru#abouthttps://dataroad.uz/ru#about Подробно: https://bit.ly/3RZEGu4