Можно ли в 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
Выступить в качестве специального гостя на концерте Uma2rman в СК «Юбилейный» в Петербурге – для меня это было волнительно и очень ценно.
Кто-то там видел и слышал меня впервые, кто-то, напротив, явно меня узнал или, может быть, даже бывал на моих концертах. И совершенно точно были те, кто слышал мою версию «Скажи» на альбоме «Звезды считают нас, часть 1», для кого стало сюрпризом моё живое исполнение этой песни в собственной интерпретации.
Ставьте плюс в комментариях, если были там, а я в любом случае зову вас на свои ближайшие выступления:
29.05 — Москва, джаз-клуб Игоря Бутмана
Билеты: https://clck.ru/3SaesW
17.06 — Санкт-Петербург, ROOF PLACE
Билеты: https://clck.ru/3SkQZL
P.S:
Дмитрий Турьев
- бас гитара
Петр Михеев - барабаны
Игнат Иконников - видео
Даша Май,
Оксана Севостьянова
- макияж
Инна Туганова - стиль
#женялюбич#jenialubich
А вы видели этот тренд?
Встретимся на ближайших концертах, «Russian Girl» обещаю спеть...
4.01.24 — Санкт-Петербург, Белый концерт, Джаггер
25.01.24 — Москва, день студента, клуб 16 тонн, подробности позднее
#женялюбич#jenialubich
Спасибо всем, кто пришел к нам на концерт в культурный центр Дом в Москве 3.12.23. Было очень душевно. Увидимся теперь в январе!
4.01.24 — Питер, Белый концерт, Джаггер
25.01.24 — Москва, день студента, клуб 16 тонн, подробности позже
P.S. Спасибо музыкантам:
Павел Илюшин - гитара
Дмитрий Турьев - бас гитара
Роман Николаев - барабаны
Алексей Худницкий - звук
И merci за мой образ
Нина Штеренберг Conspiracy Mode + Михаил Поляков - мой наряд и
Таня Морозова - MUAH для меня
#jenialubich#женялюбич
Завтра у нас концерт в Москве, но ощущение дома поедет со мной и никуда мне от него деться, что, впрочем, к лучшему, тем более что и название площадки соответствует…
Клуб Дом на Новокузнецкой, Москва, 3 декабря, увидимся совсем скоро!
А в родной Питер зову вас уже в январе, 4.01.24 сыграем «Белый концерт» в «Джаггере»! Приходите!
P.S.Фото для афиш — Ольга Мыльникова
💋 Оксана Севостьянова
#женялюбич#jenialubich
Всех поздравляю с первым днём зимы и по этому случаю предлагаю вам послушать мои песни, созвучные наступившему времени года! Композиций с летящим снегом и «градусами ниже нуля» у меня около 20, если не больше, поэтому ловите пока что первую часть, а живьем буду для вас все это петь на своих ближайших концертах:
3.12.23 — Москва, клуб Дом, билеты ещё есть, правда их осталось совсем немного
4.01.24 — Питер, «Белый концерт», клуб Джаггер
А вот и «зимний трек-лист»:
Далеко
Первый снег
Winter
Танго
Ниже нуля
Песня девушки
Метелица
Le blanc danse
Галактика
P.S. Спасибо за фото Ольга Мыльникова
юбка: бренд General Fox
Make Up: Татьяна Морозова
Hair: Оксана Севостьянова
#женялюбич#jenialubich
Так было на прошлой неделе после выступления в джазклубе Бутмана, и я жду встречи с вами на первом концерте этой зимы в Москве — 3.12.23, клуб ДОМ на Новокузнецкой
P.S.
Фото для афиши - Ольга Мыльникова
MUAH - Оксана Севостьянова
#женялюбич#jenialubich
Друзья, спасибо большое всем, кто пришел к нам на концерт 16.11.23 в джазклуб им. Игоря Бутмана! Спасибо за аплодисменты, цветы, подарки и ваши видео! Мы отобрали несколько фрагментов и делимся ими, чтобы у каждого была возможность немного соприкоснуться с тем, как это было! Дайте знак, кто из вас присутствовал на концерте, мне важно, читаете ли вы меня и тут)
Special thanx моей команде:
Павел Илюшин - гитара
Денис Кириллов - клавиши
Дмитрий Турьев - бас
Рома Николаев - барабаны
Alex Fader - звук
Брэнд
George Shaghashvili + галерея Арт-пространство «Кирпичи» Пассаж + стилист Михаил Поляков - чёрное длинное платье
Оксана Севостьянова - MUAH для меня
И отдельное спасибо за эти кадры в галерее:
Авторы видео:
[1]: Риша Исаева
[2]: Дарья Егорова
P.S.
3.12.23 увидимся в Москве, клуб «Дом» на Новокузнецкой
#jenialubich#женялюбич
Петербург, встретимся сегодня в 19:30 в джаз клубе Игоря Бутмана!
гитара: Павел Илюшин
бас гитара: Дмитрий Турьев
барабаны: Рома Николаев
клавиши: Денис Кириллов
Билеты по ссылке
#женялюбич#jenialubich
Обсудили музыку и не только в прямом эфире с радио Sputnik Санкт-Петербург с ведущим Игорем Викуловом.
Послушать запись эфира
Приятного прослушивания!
Фото[2]: Михаил Поляков
#женялюбич#jenialubich
И в дождь и в солнечный день, и утром и ночью Питер остаётся собой. Неповторимый, неподражаемый, невозможно красивый. А что вдохновляет в Петербурге вас?
Буду петь о своем городе на ближайшем концерте 16.11 в клубе им. Игоря Бутмана. Будет джаз и не только.. приходите!
А потом - Москва. 3.12- клуб Дом на Новокузнецкой
P.S. MUAH - Оксана Севостьянова
#женялюбич#jenialubich
Список из 10 песен, которые вдохновляют:
🎵 Joni Mitchell - альбом «Blue», но если выбирать песню, то наверное «All I want»
🎵Pauline Croze - T’es beau
🎵 Tracy Chapmen - альбом «Telling Stories» и отдельно трек «Fast car»
🎵Suzanne Vega - A world before Columbus
🎵Nouvelle Vague - Sweet and tender hooligan
🎵Birdpaula - Write you a Letter
🎵Kings of Convenience - Rule my world
🎵 The Beatles - здесь хочется назвать сразу 20 песен. Но давайте хотя бы «I’ll follow the sun»
🎵The Rolling Stones - Under my thumb
🎵Lhasa - My name
Друзья, пусть это будет первая часть… Потому что конечно песен, которые вдохновляют и повлияли на меня - гораздо больше!
А какие песни вдохновляют вас?
P.S.
Ближайшие концерты:
16.11 - Питер, джаз клуб Игоря Бутмана
03.12- Москва, Культурный центр "Дом"
Фото - Томирис Даулетханова
MUAH - Оксана Севостьянова
#женялюбич#jenialubich
Выступления или студийные записи? Здесь 2 в одном. Несколько кадров с концерта в «16 тонн» 12.10. от Алёны Сливка… и скролл с моей дискографией! А в чём я больше проявляюсь для вас как артист?
P. S. Спасибо за muah Елене Полубояриновой
#женялюбич#jenialubich