Можно ли в 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
Уже месяц как я размазываю свой контент на четыре площадки: Телега — база, LinkedIn, ВК и MAX. Кроме раздражения, боли и лёгкой депрессии я ничего не испытываю. Периодически ловлю себя на простой мысли: «зачем мне вообще это дерьмо?»
ВК как соцсетью я не пользуюсь, MAX тоже не присутствует в моей жизни. В итоге сам сделал себя жертвой блогинга, где нужно везде успевать, подстраиваться под аудиторию и вести все каналы ради охвата. Но я же вообще не про это. Это только усиливает внутреннюю тревогу и без того на фоне всего происходящего в мире
Сегодня решил, что дальше делаем так: пока телегу окончательно и прям намертво не заблокируют, я ничего менять не буду. Будь как будет. Я не блогер. Я просто веду канал по фану для своей банды и иногда дублирую что-то в LinkedIn. Пусть так и остаётся. Если придётся и будет желание, то начну с нуля
🔗Установить контакт в LinkedIn
🔗Пригласить в этот канал бандитов
#channelupdate
P.s. К посту приложил видео, которое я делал для своей первой и пока последней рекламе канала внутри ТГ (да, ещё те времена, когда был Дизайн-батя)
Пошёл вам навстречу и разблокировал пачку реакций, теперь будет где разгуляться!
🥂
У меня ещё есть место для кастомных эмодзи. Кидайте в комментарии, что хотели бы видеть как реакцию канала. Самые топовые и релевантные — добавлю без колебаний
#channelupdate
В этом году на канале появилось несколько отличных рубрик, но самой популярной по-прежнему остаются пятничные мемы. Я хочу немного разнообразить повторяемый контент, поэтому есть идея для вторичных рефов. Суть в следующем: каждую неделю будет дроп интересных UI/UX работ в формате шота. Это будет как съесть пончик и обогатить свою насмотренность. Что думаете?
Через пару минут я опубликую первый пост, и это будет отправная точка. Если идея вам нравится, дайте знать. Если у вас есть другие идеи, смело пишите в комментарии или боту.
🤵Го
#channelupdate
Здарова банда!
Я решил ещё сильней сломать стену межу нами и представляю вашему вниманию — 🤖Бот-ассистент Дизайн-бати. Теперь вы можете в удобном формате отправить мне какой-нибудь контент, дополнить emoji-набор или оставить предложение с критикой.
Вот это да, теперь канал официально стал лухари, а вы вместе с ним
🥃
🔗Активировать бота
P.s. Ссылка на бота теперь всегда доступна в описании канала
#channelupdate
Вы и сами всё уже знаете, а если в танке, то вот релизнот телеги
Честно не знаю нахера мне сторисы на канале, но если будет органично и не спамно — попробую
🟩Разблокировать сторис для канала
P.s. Голосовать могут только премиальные юзеры один раз в сутки, с аппкой 10.01 и выше
Update: это не просто доступ к сторис, а рейтинг канала, который поднимают подписчики
😮
#channelupdate
Здарова банда!
Мы должны понимать друг друга с полуслова, поэтому я почистил реакции на основе статистики использования и оставил только самое нужное.
Вот что получилось:
🔥Пиздатый контент
💯Абсолютное согласие
😂Бугагашенька
🍌Невероятная красота, возбуждение
🤝Поддержка,принятие информации
🤯Шок, удивление, охуевание
💩Возмущение, недовольство
𐄂 𐄂 𐄂
Теперь ставить реакции проще, уж надеюсь вы возьмете себя в руки и начнете ещё активней тыкать в них ‼️
Давайте проверим новую схему на новом посте 🙃👇
#channelupdate
Hello dear subscribers! 🥰
I know that I've posted quite a few #channelupdate before; saying that I'm staying in a remote area right now (not literally, I'm just saying so because there's no network service here 🥺), hence, explaining why I've become even more quiet and rarely posting content in this channel.
and guess what?
I'm still staying in the remote area! 😍 (happy sarcastic tone).
Anyway, recently, I'm able to post/share quite consistent content every week, because recently, I just remembered that this channel actually have two bots; one is @qw_qwbot and the other one is a bot which is used for the purpose of posting #poll and scheduled post (ikr how could I forgot my lovely bot😭)
So, if you notice that there's been consistent contents posted in this channel recently by an admin named "🍃", that's just me – marce 'hiding behind a bot', & all those posts were actually scheduled 3 days or a week before that when I was out to town.
I could've just post those contents only on the day or the few hours I'm out to town, but I don't want to be quiet every day in this channel (although this channel is Quiet World), and suddenly one day, bombard you with tons of quotes and stuffs – that can be annoying.
Hence, I used that time I could, to manage those scheduled post (in which I typed & made in advance too 🤣) so that the frequency and number of posts are even throughout every week 😜🤗
So yeah, I know that this #channelupdate might not be that important & nobody probably cares about what happening behind the scene but I'm just gonna pretend that some of you do care and type this update anyway😘
But if you actually do care about this #channelupdate & care to know what's happening behind the scene 🥺, let me know by clicking that tempting '❤' button, & if you are quite unaffected in any way, click that '🙂' button 😂
If you're reading till the end of this post, thanks & congrats! I love you 😘
Take care 🌹
#channelupdate#poll@quietworld🍃
Был: 🪦Дизайн-батя
Стал: 🏆@bymakstorch🏆
…ещё во время отдыха, думал среди прочего: а для чего мне вообще этот канал? Нахуя я что-то пишу? Для чего вы подписались? Вы же читаете меня не из вежливости же — у каждого тут сотни подписок, нескончаемая лента... Ответа пока не нашёл, но видимо что-то цепляет. Чуть-чуть почёркал свои черновики да заметки, пересмотрел где-то контент и принял решение сменить название канала, но плавно 😮
Название «Дизайн-батя» яркое, но слишком «мемное» и ограничивающие. Время для моего альтер эго — Maks Torch. С ним я давно роняю запад ебошу разные продуктовые проекты. Под этим флагом мне и вам будет проще идти дальше.
Никакого «дизайн» в названии, всё! Пошла эта связка нахуй. Ничего общего не хочу иметь с сегодняшней дизайн-тусовкой и не хочу, чтобы меня искали по «design». У нас тут своя банда, не забываем.
🕳
Канал финально изменит облик в
🔤🔤🔤🔤🔤🔤🔤🔤🔤
Новую фичу с возможность предложить контент — включил 🟩 но более удобная форма всё равно в боте 🤖@makstorch_bot
#channelupdate#мысли
Банда, есть идея!
На канале почти 100к (ну, без 99к), и у нас тут своя уникальная атмосфера. Кажется, мы готовы запустить свою публичную номинацию
🥂
Предпосылки
Знаю, что многие подписчики по необъяснимой причине читают абсолютно бездарный канал, что-то там про адский юиск
😄, что означает — спрос на такой контент есть. Но я не планирую выливать на вас такой треш и фастфуд, поэтому придумал следующее...
Про номинацию
Хочу каждый год коллективно собирать самые крупные и неудачные проекты, редизайны, решения, а затем устраивать голосование и награждать победителя статуэткой туалета с названием проекта.
🕳
Понятное дело, что сейчас я не буду делать лендос и статуэтку. Пока мне важно ваше мнение, ведь мы же банда алло. Если ты считаешь, что такая номинация необходима в РУ сегменте, ставь 🤜, а если думаешь, что это какая-то поебень, ставь 💩
От вашего отклика зависит наведу я суету или нет. Буду рад участию подписчиков: графика, выбор кандидатов и другой вид деятельности.
#мысли#channelupdate
⚙️Настройка контента на канале
Здарова банда!
🧢
Много времени прошло с последнего опроса и калибровки предпочтений по контенту. Сейчас запущу голосование, а вы будьте зайками — ответьте, какой контент вам больше заходит. В комменты можно кинуть критику, идеи и пожелания.
#опросы#channelupdate
🔥😂🤜💯💩
🍌
😭
Какой реакции нехватает лично тебе?
Кидай один эмодзи в комменты и возможно именно он встанет в один ряд с базой реакций канала.
#channelupdate#опросы
В этом месяце меня пару раз подковырнули: мол, канал стал больше развлекать, чем рассказывать что-то полезное. Говорят, хохотушек стало больше, чем тру край дизайн лайф. И знаете что? Да, согласен. Рубрики веселят, гости заходят, а продуктовая жизнь ушла. Так что да, я услышал и исправляюсь. Буду постить пореже, но с балансом: лайф → рубрики → гости → снова лайф (но это не точно).
Также, я как автор
🧢 вписался в конкурс авторских Telegram-каналов. Формат и подход мне кажется интересным: 15 больших, популярных и живых каналов, не просто оценивают авторов, а репостят самые сильные посты победителей. Идея благородная.
Буду рад поддержке с 7 по 14 июля на канале конкурса @tg_contest_main, а пока, думаю, какие 3 поста отдать на растерзание
🚬
Любые ваши вопросы, идеи и возражения кидайте в комменты или в бота @makstorch_bot
#channelupdate#конкурсы