Можно ли в 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
💫Художники в театрах: кто создавал декорации?#theatre
Как театр переносит нас в другой мир? Огромную роль в этой магии играют декорации и костюмы, передающие настроение героев и дух их эпохи.
Мы собрали 4 известных художников, которые создавали сценические образы и костюмы, делая театральные постановки настоящими произведениями искусства 🤍
ART FLASH
💫«Она — его вселенная, он — лишь часть ее мира»: Аня Чиповская и Андрей Мартынов о спектакле «Митина любовь» #theatre
Премьера спектакля «Митина любовь», поставленного режиссером Владиславом Наставшевым, прошла в сентябре этого года. В основе постановки — одноименная повесть Ивана Бунина, написанная ровно 100 лет назад, но по-прежнему звучащая современно.
Роль Мити исполняет Андрей Мартынов, а Катю играет Аня Чиповская. В нашем разговоре с актерами — о роли тела и пространства в спектакле, о доверии, которое рождается между партнерами на сцене, и о том, как проживать историю любви, которая изначально обречена. Подробнее — в карточках и в новой статье на сайте🤍
ART FLASH
💫«Она — его вселенная, он — лишь часть ее мира»: Аня Чиповская и Андрей Мартынов о спектакле «Митина любовь» #theatre
Премьера спектакля «Митина любовь», поставленного режиссером Владиславом Наставшевым, прошла в сентябре этого года. В основе постановки — одноименная повесть Ивана Бунина, написанная ровно 100 лет назад, но по-прежнему звучащая современно.
Роль Мити исполняет Андрей Мартынов, а Катю играет Аня Чиповская. В нашем разговоре с актерами — о роли тела и пространства в спектакле, о доверии, которое рождается между партнерами на сцене, и о том, как проживать историю любви, которая изначально обречена. Подробнее — в карточках и в новой статье на сайте🤍
ART FLASH
🌟Балет — это часть культуры, но искусство ли?#theatre
В новом материале мы побеседовали с балериной Михайловского театра Анжелиной Воронцовой о том, как важно помнить о своем ментальном здоровье людям творческих профессий, разнице между русскими и западными театрами, а также о сотрудничестве с Начо Дуато и Николаем Цискаридзе.
«На сцене я вольна жить и делать так, как бы это делала моя героиня».
Прочитать статью можно по ссылке на сайте ART FLASH Magazine.
ART FLASH
современная природа, 2021
центр вознесенского, мск
р. э. куликова
в дневнике под заглавием ‘современная природа’ британский режиссёр дерек джармен писал про кино и свою болезнь столько же сколько и про цветы, которые высаживал в саду в Дангенессе. здесь линия повествования расходится потому что очень много можно сказать.
но то же и на сцене: экраны, звуки, цветы. большой душный город поставлен на паузу. намеченная кульминация не происходит и для этого рассказа она не требуется.
раз внешние события страшны то посмотри на вереск и лаванду и ромашки и шиповник
#theatre#book
Сыграли сегодня спектакль «Ночь её откровений» в Волгограде. Первый акт дался непросто… Одна из зрительниц в зале была с нами в постоянном диалоге. Прям громко беседовала, что-то выкрикивала. И никто ей и нам не помог… Странное ощущение. Но наверное, чем больше будет гастролей, тем больше разного опыта и баек у нас накопится. Всякое бывает. Понимаю. Жаль только, если всем другим зрителям это помешало восприятию спектакля 🙌🏻🕊️
#гастроли#theatre
Театр был щедр ко мне с самого раннего детства. С первой роли в мюзикле «Энни». Театр дал мне много главных ролей в независимых постановках и на самых уважаемых театральных сценах страны. Театр подарил мне путешествия/гастроли по всей нашей огромной стране и за её пределами. Театр познакомил меня с прекрасными людьми: с достойнейшими партнерами на сцене и верными зрителями в зале. В театре воплотились мои первые пробы перв и робких постановок. Театр не побоялся меня в самых разных жанрах. В театре я - везунчик! 🙌🏻 Не принимаю, как должное 🙌🏻 Благодарю! 🙌🏻 Спасибо, Господи! 🙌🏻
С Днем Театра, Друзья! 🙌🏻💖❤️💖
#theatre#деньтеатра
Фото: Семён Оксенгендлер
Завтра впервые везём «Ночь её откровений» в Кострому. Волнуюсь всегда. Хочу, чтобы вам было хорошо с нами, чтобы вместе и насмеялись вдоволь, и погрустили о важном. Главное чувство, которым наполняюсь после встречи со зрителями, - благодарность. 🙏🏻❤️ Спасибо за эту возможность - играть для вас, видеть ваши лица. 🙏🏻
# ночьеёоткровений #гастроли#театр#theatre