Можно ли в 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
#gi
Хватит ходить в скучном GI, как у всех.
Хочешь, чтобы тебя запоминали ещё до первого захвата?
Сделай своё Ги таким же уникальным, как твоя игра.
Я вышью на твоём GI любой дизайн:
— логотип команды
— ник или имя
— любимую фразу
— жёсткий арт, который говорит за тебя
Никаких шаблонов. Только то, что отражает тебя.
⚡ Качественная вышивка
⚡ Чёткие детали
⚡ Держится, даже когда ты рубишься на износ
Пиши 👉@skazyavin
Обсудим идею, сделаем эскиз и рассчитаем цену.
Твоё GI — твои правила.
Глянул стрим о разработке Снежной и обратил внимание на фрагмент:
Мы не будем спешить с натянутым или бессмысленным финалом, но и не станем растягивать историю ради одной лишь выгоды. Мы верим, что это путешествие само по себе имеет значение. Так было раньше, так есть сейчас и так будет в будущем.
Я понимаю сложность поддержки такого масштабного проекта и то, что необходимо растягивать сюжет ради прибыли и развития компании. Но я считаю, что у HoYoverse не должно быть права на бессмысленный или глупый «конец» основного сюжета. Почему же в кавычках? Вряд ли они закроют игру после финала основной ветки. Скорее всего, поступят так же, как с Honkai Impact 3rd. Выпустят следующую часть с новыми героями или начнут развивать уже знакомые лица.
Я хоть и не играю в ГИ, но активно слежу за развитием игры и вижу, как проект становится лучше. Возможно, новый регион станет для меня поводом для полноценного возвращения, но мой интерес к гачам слишком распылён из-за их количества.
#gi@ostalf_lab
🧠 Игрок ушёл на «пенсию»
😍 Китайский игрок решил покинутьGenshin Impactи запросил возврат средств, которые задонатил в игру. Его баланс ушёл в минус почти на миллион примогемов. Если доверять общедоступной информации, китайские игроки обязаны использовать реальные паспортные данные для регистрации аккаунтов.
😍 Источник может оказаться недостоверным.
💬 Китайцам там так легко вернуть потраченные средства? Получается, наигралась и можно денюжку вернуть?
[Тег: #GI
Источник: hotal23]
😍 Больше в iNFO Daily
📊Падение рейтинга Genshin Impact
😍 За последние дни в X появился странный тренд, посвящённый коллективному понижению оценки Genshin Impact в Google Play и App Store. Точная причина осталась неясной, но, возможно, дело в том, что в новой версии игроков не устроило количество круток за патч и сам контент. Многие пользователи подхватили тренд и стремятся понизить рейтинг до 1★.
💬 Я прочитала кучу постов... И мне кажется, игроки просто устали от ~60 круток за патч.
[Тег: #GI]
😍 Больше в iNFO Daily
Давно не играю в ГИ, но теперь планирую потратить свои скромно накопленные несколько тысяч примогемов на Нефер. Спасибо эдитам 👍
Cr: sk.numb
#gi@ostalf_lab
❄️ Показали Снежную в Genshin Impact
😍 Прошла трансляция разработчиков, посвящённая новому региону — Снежной. В ходе стрима рассказали о скором добавлении региона, расширении возможностей крио элемента: изменении ландшафта, обновлённых реакциях и преимуществах элемента в новых условиях.
😍 Обсудили не только Снежную, но и общий подход к созданию регионов. Как игра идёт в ногу со временем, предлагая свежие дизайнерские и креативные решения.
😭 Видео на YouTube: тык
😍 Промокод на 200💶:
• Snezhnaya20260812
😍 Активировать на сайте: тык
💬 Честно, иногда такие стримы меня очень трогают...
[Тег: #GI]
😍 Больше в iNFO Daily
❓Лоэн оказался популярнее Николь?
😍 Вчера и сегодня вышли вертикальные анонсы Николь и Лоэна из Genshin Impact. Оказалось, что в социальных сетях Лоэн за 4 часа собрал больше репостов, а по некоторым метрикам даже больше лайков и комментариев, чем Николь за сутки (данные на примере аккаунтов в X).
😍 Популярность Лоэна проявлялась и до анонса. Особенно в постах с его анимациями.
💬 Даже на канале iNFO он собирает больше реакций и репостов, чем Николь. Честно... Мне не совсем нравится этот мальчик.
[Тег: #GI]
😍 Больше в iNFO Daily
Сегодня создатель крупнейшего лор-канала по Геншин Импакт выложил своё первое, но масштабное видео (двухчасовое), полностью посвящённое разбору истории региона Натлан из Геншин Импакт.
Я давно не играл в эту игру, поэтому ничего не знаю об этом регионе. Но, мне понравилась работа, которую провёл Андрей Ройт для создания этого видео.
В прошлом я хотел заняться записью познавательного контента по видеоиграм (полные обзоры), но из-за недостатка времени и низкого приоритета — не сложилось. Поэтому пока что буду довольствоваться короткими видеороликами для ТТ и YouTube Shorts, а дальше как получится.
В качестве небольшой поддержки, выложил пост о его видео на своём канале по ГИ.
#gi@ostalf_lab
Обычно я не пишу о днях рождения вымышленных персонажей, но для моего фаворита из Геншин Импакт (а также из Хонкай Импакт) сделаю исключение.
Сегодня свой день рождения празднует Принцесса Нирваны Ночи — Фишль фон Люфтшлосс-Нарфидорт. Персонаж, который выпал мне на релизе и входящий в основной отряд на протяжении всего существования игры. Я перестал активно играть в 2022 году и планировал вернуться ради обзора Снежной, но если бы разработчики анонсировали 5★ версию Фишль, я бы без задней мысли снова установил игру.
#gi@ostalf_lab
Как думаете, стоит ли вернуться на старый (первый) аккаунт в Геншин Импакт, который был заброшен в 2022 году, и провести стрим-обзор?
Там достигнут ранг 56–57, есть древние ивент-персонажи и отряды из четырёхзвёздочных героев.
Идею оставлю на неизвестное будущее.
#gi@ostalf_lab
💨Мондштадт в реальной жизни?
😍 В Китае открылась тематическая зона парка Universal Beijing Resort, воссоздающая Мондштадт из Genshin Impact. Посетители отмечают, что многие элементы точно повторены и отлично передают атмосферу игры. В парке много косплееров, они стоят в характерных позах, перемещаются по локациям и общаются с гостями. Также продаются фирменные блюда из игры.
💬 Может, кому-то такое не нравится, но я хочу туда сходить...
[Тег: #GI]
😍 Больше в iNFO Daily
😍Вышли подробности об аниме по Genshin Impact
😍 Сегодня студия ufotable выпустила рекламный ролик со своими проектами и добавила аниме по Genshin Impact в раздел «Будущие проекты». В тизере появились Итэр и Люмин.
💬 После этого анонса нас снова ждёт тишина? Или всё-таки нет…
[Тег: #GI]
😍 Больше в iNFO Daily