Можно ли в 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
🎶 Продюсер Максим Фадеев анонсировал выпуск пластинки с неизданным материалом группы Serebro
Релиз состоится 19 июля перед премьерой нового состава музыкального коллектива. Прекративший в 2019 году существование поп-проект Serebro перезапустят.
#МаксимФадеев#Serebro
СТОП! СЛИТО.💦
Украшения на все времена!
Блеск и элегантность серебряных украшений завораживают, пробуждая в нас чувство стиля и индивидуальности. Серебро, обладая уникальной теплотой и мягкостью, становится идеальным материалом для создания неповторимых украшений.
Каждое серебряное колье, браслет или серьги имеют свою историю - от древнегреческих изваяний до современных авторских работ. Это не просто металл, это воплощение творчества и высоких эмоций, переданных мастером от сердца к сердцу. Серебро отлично сочетается с различными камнями, от традиционного бирюзового до загадочного аметиста, позволяя каждому изделию заиграть новыми красками.
Откройте для себя мир серебра, и Вы увидите, как он изменит Ваше представление о красоте и элегантности!
Для заказа серебряных украшений:
- Переходите по ссылке на наш сайт, указанный в шапке профиля.
- Пишите нам в сообщения группы.
- Посетите наш ювелирный салон по адресу г. Ярославль, ул. Малая Октябрьская д.6
#серебряныеукрашения
#осень
#серебро
#serebro
#мода
Приготовьтесь к восхищенным взглядам!
Ювелирные украшения – это ключ к элегантности и оригинальности каждой представительницы прекрасного пола. С их помощью Вы не только украсите любой наряд, будь то скромное платье или праздничный костюм, но и подчеркнете свою индивидуальность!
Для заказа:
- Перейдите по ссылке на наш сайт, указанный в шапке профиля.
- Напишите нам в сообщения группы.
- Посетите наш ювелирный салон по адресу г. Ярославль, ул. Малая Октябрьская д.6
#серебряныеукрашения
#серебро
#serebro
#мода#ювелирныеиздели
#silver
#русскиеремесла
Не ждите особого случая, чтобы сиять!
Позвольте себе разнообразить каждый день с нашими ювелирными украшениями.
Загляните на наш сайт www.rusremesla.ru прямо сейчас!
#украшения
#серебро
#serebro
#мода#ювелирныеизделия
#silver
#серебряныесерьги
#кольцо
#русскиеремесла
#серебрянаяпосуда
Мы так хотим, чтобы лето не кончалось!
Лето - время самых ярких и легких нарядов! Летний стиль требует особого внимания к деталям и здесь на помощь приходят серебряные украшения.
Серебро прекрасно сочетается с летней палитрой. Нежные серебряные серьги с жемчугом или классический браслет с филигранным узором могут стать ярким акцентом в вашем летнем образе.
А как насчет кулонов с природными мотивами? Листочки, цветы или морские ракушки, выполненные из серебра, сделают ваш летний look незабываемым. Они несут в себе атмосферу солнечных дней и запоминаются надолго.
Давайте подольше хранить в памяти летние мгновения, украшенные блеском серебра!
Выбирайте украшения на нашем сайте http://rusremesla.ru/ и продлевайте лето вместе с нами!
#серебряныеукрашения
#лето
#серебро
#serebro
#мода#ювелирныеизделия
#silver
#серебряныесерьги
#кольцо
#русскиеремесла
Лето - время радости, цветов и украшений!
Летние теплые деньки – самое время, чтобы добавить немного блеска и красок в свой образ.
Серебряные браслеты, яркие серьги, легкие колье – все это прекрасно дополнит ваш летний наряд.
Не стесняйтесь экспериментировать - выражайте свою индивидуальность через украшения!
Вопрос для вас: какие украшения предпочитаете носить летом?
Присылайте фото любимых летних украшений в комментарии – мы будем рады!
На нашем сайте http://rusremesla.ru Вы точно найдете, чем себя порадовать!
#серебряныеукрашения
#лето
#серебро
#serebro
#мода#ювелирныеизделия
#silver
#серебряныесерьги
#кольцо
#русскиеремесла
Блеск, который освежает.
Серебро обладает удивительным свойством – его прохладный блеск словно создает эффект свежести. В жаркие дни серебряные украшения смотрятся особенно эффектно, отражая солнечные лучи и добавляя образу лёгкости.
#серебряныеукрашения
#лето
#серебро
#serebro
#мода#ювелирныеизделия
#silver
#серебряныесерьги
#кольцо
#русскиеремесла
Как всегда грандиозно прошли премьеры хитов от HIFI-стриминга Звук - «Вечерний звук», где искромётно выступили Митя Фомин, Полина Гагарина, Vlada Miravi, BEARWOLF, NLO, By Индия, новый состав группы SEREBRO, исполнитель хита Sigma Boy - Betsy, Марсель и другие.
#сберзвук#вечернийзвук#МитяФомин#ПолинаГагарина#Betsy#SEREBRO#BEARWOLF#NLO#Miravi
Не откладывайте на потом!
Прямо сейчас вооружитесь красотой и стильно выделяйтесь из толпы благодаря нашим серебряным украшениям, которые подойдут к любому наряду.
Добавьте нотку изысканности в свою жизнь и позвольте своим аксессуарам говорить о Вас!
Переходите на наш сайт, указанный в шапке профиля!
#серебряныеукрашения
#осень
#серебро
#serebro
#мода#ювелирныеизделия
#silver
#серебряныесерьги
#кольцо
#русскиеремесла
#ярославль
Зачем нам сувениры?
Это вопрос, который задают себе многие. Для кого-то сувенир – это просто память о поездке или о событии, которое они хотят сохранить в своей памяти. Для кого-то это способ выразить свою индивидуальность. В любом случае сувениры – это не просто предметы интерьера, это в первую очередь эмоции и воспоминания, пропитанные различными чувствами!
Сувенирную продукцию вы можете найти на нашем сайте www.rusremesla.ru
#серебряныеукрашения
#лето
#серебро
#serebro
#мода#ювелирныеизделия
#silver
#серебряныесерьги
#кольцо
#русскиеремесла#сувениры
Вместо тысячи слов…
Классическое серебряное кольцо — это не просто украшение, это символ нежности и внимания. Этот подарок способен покорить сердце любой девушки.
Серебро - металл, который олицетворяет чистоту и нежность чувств, а кольцо на пальце девушки напоминает ей о заботе и любви, которую она получает.
Кроме того, серебряное кольцо отлично сочетается с любым нарядом - будь то повседневная одежда или вечернее платье - оно подчеркивает женственность и изящество обладательницы.
Если хотите порадовать свою возлюбленную или просто хотите сделать приятный сюрприз девушке - обратите внимание на классическое серебряное кольцо. Мы уверены, она будет в восторге от такого внимательного и трогательного подарка.
Для заказа:
- Переходите на наш сайт www.rusremesla.ru.
- Пишите нам в сообщения группы.
- Посетите наш ювелирный салон по адресу г. Ярославль, ул. Малая Октябрьская д.6
#серебряныеукрашения
#лето
#серебро
#serebro
#мода#ювелирныеизделия
#silver
#серебряныесерьги
#кольцо
#русскиеремесла
#подарок
Поздравляем с Государственным праздником России - Днем народного единства!
Сегодня мы вспоминаем события, сыгравшие ключевую роль в истории нашей страны. Четыре с небольшим столетия назад этот день ознаменовал начало возрождения России - благодаря сплочению и единению народа, поднявшегося на защиту Отечества, был положен конец одному из самых тяжелых периодов – Смутному времени.
Единение народа во все времена было основополагающим для России. Это та основа, которая связывает наше прошлое, настоящее и будущее. И сегодня согласие и единство общества, основанные на нравственных ценностях, испытанных веками, являются необходимым условием для благополучия России, спокойной и мирной жизни ее граждан.
Давайте хранить мир, согласие и взаимопонимание в нашем обществе. Вместе мы можем преодолеть любые преграды!
С праздником, желаем Вам мира, благополучия и всего самого доброго.
#серебрянаяпосуда
#осень
#серебро
#serebro
#мода
#silver
#серебряныесерьги
#4ноября
#русскиеремесла
#деньнародногоединства