Можно ли в 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
C 24 октября 2024 г. технические специалисты компании А1 фиксируют участившиеся случаи снижения скорости доступа к ресурсам Интернет в вечернее время.
По информации от провайдеров верхнего уровня, эти проблемы вызваны массированными DDoS-атаками, что в свою очередь приводит к деградации качества услуги передачи данных в сетях мобильных операторов и сетях фиксированного доступа.
Компания не исключает, что технические проблемы на сетях вышестоящих провайдеров могут повторяться ближайшее время. А1 приносит извинения своим клиентам, которые сталкиваются с данной проблемой. Со своей стороны специалисты компании прилагают все усилия, чтобы влияние на абонентов компании было минимизировано.
#a1
Не могу не гордится нашими сотрудниками, которые восстанавливают инфраструктуру после урагана в Гомельской области. Уже восстановлены 197 из 200 базовых станций. Ни жара, ни ветер, ни комары и мошкара (и даже осы) не могут остановить работы наших коллег.
Горжусь своими коллегами и люблю А1 за высокий профессионализм и высокие человеческие и моральные качества, присущие настоящим героям.
I❤️🅰️#a1
Вчера пресс-служба Министерства антимонопольного регулирования и торговли написала пресс-релиз относительно компании А1 Беларусь"за нарушения законодательства о ценах и ценообразовании в части отсутствия экономических расчетов, подтверждающих уровень установленных на услуги сотовой подвижной электросвязи тарифов".
Меня всегда учили оценивать объективность любой информации собирая и оценивая мнения обеих сторон. Сегодня наша пресс-служба опубликовала комментарий:
В отношении заявления МАРТ компания А1 сообщает, все тарифы компании имеют соответствующие калькуляции и при их утверждении проходят процедуры согласования с МАРТ. Замечания контролирующих органов касались исключительно вопросов технического оформления, что никаким образом не влияло ни на процесс формирования тарифа, ни на величину тарифа, при этом замечания были устранены еще в ходе самой проверки. В ходе проверки также установлено, что действия компании не принесли ущерба ни клиентам компании, ни государству.
😎❤️🅰️
#a1
С наступившим летом 🪴☀️
Приглашаю встретить лето вместе с А1 Беларусь 8 июня у Дворца Спорта (пр-т. Победителей, 4).
Как никак, но 25 лет компании всего один раз и мы для всех жителей и гостей хотим подарить приятные воспоминания и хорошее настроение. Главная фишка концерта – возможность послушать самые популярные композиции, занимавшие топ-чарты последних 25 лет. Концерт завершится красочным фейерверком в 23:00.
Возле главной сцены с 10:00 до 17:00 будет организована специальная зона VOKA. Здесь вы сможете насладиться просмотром фильмов и мультфильмов под открытым небом, предоставляемых онлайн-кинотеатром VOKA. Также принять участие в увлекательном киноквизе и получить шанс выиграть брендированную продукцию.
Я ❤️ А1 Беларусь, а вы? 🤩
#a1#news
В адрес одного интернет-портала дал ответы для статьи про ИИ (как только выйдет сразу дам знать). Сегодня хочу вам рассказать об одном фильме и компьютерной игре по ИИ, которые я очень люблю.
Фильм на вечер:I, Robot (2004). Не смотрите на год. Фильм до сих пор смотрится на одном дыхании а самой главной моралью фильма является фраза:
Предрассудки противоречат разуму.
Игра: Detroit: Become Human (2015). Это игра с прекрасным сюжетом, вовлекаясь в сюжет которой вы сможете принимать решения за андройда и понять: сможете вы принять решение как робот, если вы человек. Вас ждут моральные дилеммы, вам предстоит решать, кому жить, а кому умереть. Каким окажется будущее в результате тысяч принятых вами решений и десятков возможных концовок зависит только от вас.
Если не хотите играть посмотрите на то, как в эту игру играет ChatGPT
#a1#game#film
Я открываю свою лавку материалов!
За этот год у меня накопилось немало полезных разработок, и было бы грустно, если бы они навсегда остались только в моем личном и безраздельном распоряжении. Так что я решила открыть свой собственный магазин авторских разработок - Лавка материалов Alex Spanglish.
В нем сейчас собраны 20 моих лучших разработок на Genially за 2024 год. И для вашего удобства я составила каталог материалов, выставленных на продажу в моей лавке. В нем все разработки отсортированы по уровням, и вы можете найти их по хэштегам.
#A1
1. Inside Out 2 (emotions)
2. Where is My School ID? (prepositions of place)
3. School subjects
4. Guess Who (Appearance)
5. Revisionville
6. Months and Seasons
7. Save Thanksgiving Day
8. A Week in the Life of a Capybara
9. In a Restaurant
10. Get the House Ready for Christmas
#A2
1. Little Red Riding Hood
2. Dress me up (clothes)
3. Unusual Restaurants
4. 1st Lesson Battleship Game
#B1
1. The Crime of the Century (Passive Voice)
2. Clever Machines
3. Word Formation - Affixation
4. Thank you by Secret Garden (based on a song)
#B2
1. What Your Musical Taste Says About You (based on a video)
2. Make the Most of Your Time (based on an article)
3. Indulging in Culinary Delights
4. 5 Love Languages (Miro)
5. Self-Love Day (Miro)
6. How to Get Rid of Your Winter Blues (Miro)
Лавка и каталог будут постоянно пополняться новинками, и я вас обязательно буду об этом информировать. Заходите!
🚀 Bitwise Amends Spot Hyperliquid ETF Proposal with SEC
Bitwise Asset Management has submitted a second amendment for its proposed spot Hyperliquid ETF to the U.S. Securities and Exchange Commission as of April 10. According to NS3.AI, the amendment outlines a 0.67% annual management fee and introduces Flowdesk and Wintermute as approved HYPE trading counterparties, while removing A1 from the list. Anchorage Digital Bank remains the custodian for the fund. The ETF is set to trade on NYSE Arca under the ticker BHYP, with plans to stake the majority of its HYPE holdings while maintaining a 30% liquidity reserve for redemptions.
#Bitwise#AssetManagement#HyperliquidETF#SEC#Amendment#ManagementFee#Flowdesk#Wintermute#A1#AnchorageDigitalBank#NYSEArca#BHYP#HYPE#LiquidityReserve#Redemptions
Хэш-теги для быстрого поиска контента
(с июня 2024 года - до этого ручной поиск, сорри но пока так 🫡)
Список по мере добавления чего-то нового будет обновляться👨💻
#a1 - the best Company
#ai - все что касается ИИ
#announcement - что-то лично хочу заявить
#book - сам читаю и вам советую
#blueteam - понравится защитникам
#case - правда жизни
#cis - любимый фреймфорк
#cybercrime - мр*зи
#dataleack - утечка данных
#game - “Что наша жизнь? Игра!”
#git- есть интересный репозитория
#hack - взломы
#film - и сериалы тоже что бы не писать портянку
#law - юрилический или пан-юридический документ
#lifehack - полезность
#linux - про пингвинов тут
#malaware - что-то написал про вредоносное ПО
#microsoft - когда-то адекватная компания
#news - что то связанное с новостной повесткой
#post - мой материал
#redteam - атакующие инструменты
#report - хорошие отчеты
#scam - “обмануть за 60 секунд”
#tool - полезный инструмент
#quote - сказал что то такое что самому понравилось или позаимствовал
#windows - то, что часто атакуют