Можно ли в 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
Дело Стетхема живёт, а Паоло Коэльо забыт.
Заметили что из неосферы практически пропали ванильные цитаты уступив место волчьим? Их разнесло в клочья по округе💥 авениды Santos Dumont. Как далеко нужно забраться, чтобы не встретится с мудростями из пабликов Vk? Стратосфера? Юпитер, Альфа Центавра? Я для себя нашёл safespace в бабушковых открытках WhatsApp
Кем бы ты ни был, кем бы ты не стал, помни, где ты был и кем ты стал. Ауф
#pintada#Ruso
После высиживания суток в жаркой квартире вываливаюсь на улицу как разварившаяся каша из кастрюли, а там андеграунд.
Несмотря на обилие старой архитектуры и уважения к классике🗿, не чувствуется тесных рамок псевдо-академического режимного предприятия. Наличие граффити и муралов изрядно рассыпано по городу, причём пока не заметил ветхих особняков забобленых сверху донизу или завандаленых построек из старого фонда. Обычно разукрашиваются заборы, склады, гаражи и современные хибары. Как так гармонично👁 получается пока не понимаю. Толи их дворникам в ЖЭКе выдают мало краски для агрессивной конкуренции с граффитистами при помощи серых прямоугольников, толи это такое общее чувство вкуса, как мне и хотелось бы думать. Уличные художники не особо посягают на архитектурных старцев и частную собственность, а коммунальщики не бегают закрашивать в монохром все лиминальные пространства. Такая вот уместная толерантность рядового жителя.
Что интересно: цветные картинки✒️ всё же склоняются к изображениям, а не тексту, и мелкого тегинга вообще мало, по сравнению с США или Евразией.
#art#пейзаж#pintada
Вот художников хлебом не корми — дай залезть в какие-нибудь ебеня, даже жилые, и чёнить там мазануть. А уж временные стены трущоб, так подходят временным картинкам
😉.
#favela#пейзаж#pintada
Не знаю почему по задумке художника гоминид без оружия превращается в женщину. Осуждаю мизогинию🔠.
Жириновский обещал :
Каждой бабе по мужику.
Если дамам раздать пушки они сами справятся, без политиков.
Знаем мы таких номенклатурщиков, хотят взять под свой контроль перераспределение пороха🔫 и Y-хромосомы👨🏻. А потом посылают на улицы города таких граффити-пропагандистов. Меня не обдурить, я давно в интернетах.
#автоном#феминизм#pintada
Ещё в прошлом году посетил Национальный музей изящных искусств. Получилось изящно
🍷.
Самое главное — в центре, доступно и абсолютно БЕСПЛАТНО —Рекомендую.
Музей поделён на два этажа. На втором находится современное искусство, актуальная мазня и прочая борьба с патриархатом. Ни душевных ни физических сил уже не нашлось, так что было решено получать впечатления дозировано. Хороший метод, советую. Сосредоточились значит на первом этаже, а там есть что поглядеть.
Знакомство естественно начинается с америндийских туземцев. Артефакты народов кечуа, мапуче, гуарани и иных кобольдов. Разные палки-копалки, мисочки, бусы и прочее. Мне дико вкатила звереподобная посуда и чайники с птичьими лицами
🦆. Вообще лица на многих предметах есть. Отзвуки это может анимизма, а может массовой парейдолии. Губастый кувшин об этой истории обещал молчать.
Потом из мезолита резкий прыжок в ренессанс. Прыжок на пушечном ядре. Как говорил один толи шиз, толи искусствовед - Искусство это насилие. Начинаются гобелены, каллиграфия, позолоченная утварь, забавные иконы упоротого средневековья и прочая реклама Страшного суда
🔥.
Идём дальше. Просвещение. Я не знаю где местные идальго заказывали портреты себя любимого, да и остального семейства, однако явно на местный спрос было недостаточно предложений, наверно мало кто мог выписать себе мастера из-за океана. Некоторые выполнены явно на заказ в Париже или Мадриде, но добрая часть — работы местных художников
😅 с шаткими знаниями анатомии. Всратые лица и пропорции даже умиляют своим наивом. На экспорт явно шли готовые работы из Европы: яблоки, кони, поля, кони среди яблок, яблоки на полях, кони бегущие по полю. Натюрморты и пейзажи короч, и все такие тёмные, много контрастного кьяроскуро. Есть Рембрандт, который скорее относится к предыдущей эпохе, но вообще не верится что его могли завезти при жизни. Появляется барокко и мотивы эллинистических инфлюенсеров. Не могу не упомянуть любимого мной
☺️ Франсиско Гойя. По некоторым залам прям видно, что это собирали какие-то отдельные семьи. Всё из частных коллекций, пожертвованное, не раскулаченное.
Приближаясь к авангарду заметно тотальное количество импрессионизма и постимпрессионизма. Это не рофл. Таких картин столько же сколько всех остальных экспонатов вместе взятых. Если в предыдущих рубриках были по большей части ноунеймы, то тут явно оригиналы мастеров. Иногда второсортные, но всё же. Моне, Ренуар, Тулуз-Лотрек, Деренна, ван Гог, Роден. Даже дурак Гоген имеется. Явно скупали этот массив во времена современников, старинные экспонаты было бы достать куда сложнее. Это подтверждает представление о Байресе как о городе собранного из Ар-нуво, югендштиля, декаданса и раннего модернизма, а затем и интербеллума. Запах ваксы и уксуса. Вот прям там на стуле смотрительницы зала захотелось включить патефон и поставиться морфием😁.
Раздражив до зуда зрачки измерением красоты видимого спектра покинули музей в добрых, но измождённых чувствах. В целом обстановка внутри кажется чуть более неформальная чем в СНГшных музеях. Можно везде спокойно фотографировать, прикиньте? От этого оказывается не отваливается жопа. Но есть обратная сторона. Меня попросили носить рюкзак в руках или на животе. Толи потому что в музее орудуют воры (лол что?) Толи чтобы не задеть при повороте какойнить арт-обьект со спины.
Вообще мне понравилось, но удивительным образом подтверждает превосходство российских главных музеев в плане обширности коллекции и уровня работ. Уровень базы колосален. Действительно не все могут спорить с Метрополитен и Лувром. Хранители второго, а то и третьего эшелона могут рассчитывать на черновики или не самые востребованные работы известных гениев, а то и просто развлекаться соц-реализмом местных красильщиков и маляров из союза художников
🤡. Буэнос-Айресу в этом плане повезло куда больше.
#сервис#guide#art#pintada
Посетил вчера коллективное прослушивание Леонида Ильича Светова🗞. Дядька приехал в Байрес, молодец. Куча россиян выползли из-под своих мшистых пней, встретились послушать анекдоты про метамодерн. Очень прикладная инфа, лучше коуча по успеху
👍. На несколько часов воссоздалась уютная атмосфера московских тусовок, где люди живо обсуждали как им обустроить земную твердь перед коллапсом вселенной.
На афтерпати мы не остались найдя другую компанию
🛏. Так в районе Палермо был обнаружен этот кадр с видом на забор. Очень онтологическое заявление. Искренность эта новая или старая, сказать не возьмусь.
#политота#автоном - анкап #Ruso#праваки#pintada