Можно ли в 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
Привет, дорогие друзья!🌟
У нас замечательная новость! Мы ищем волонтеров, готовых помочь нашему благотворительному фонду "Еда днесь"! 🙌
Если вы обладаете профессиональными навыками, и готовы потратить свое время и силы на благое дело, то мы ждем вас! 🎨👩💻
Мы предлагаем вам возможность поработать над интересными проектами, познакомиться с новыми людьми и внести свой вклад в изменение жизни бездомных к лучшему. 🤝
Не упустите свой шанс стать частью нашей дружной команды и сделать этот мир немного добрее! 🌍💕
Для участия отправьте нам сообщение с кратким описанием своих навыков и опыта. Мы обязательно свяжемся с вами и обсудим детали сотрудничества! 📲📩
Вместе мы сможем достичь большего! 🌟✨
#probono#волонтеры#благотворительность
🔥Номинация - для тех, кто стоит на самом переднем крае защиты бизнеса.
Для тех, кто знает цену справедливости и умеет за неё бороться.
Уголовное право и судебные споры - это области, где на кону стоит не просто деньги или репутация. Здесь на кону - свобода, будущее, сама жизнь человека.
Лауреат в номинации «Уголовное право и процесс»
✅Голуб Анна Владимировна - член рабочей группы по уголовному праву и процессу, адвокат
#деловоесобрание#форум#probono#награда
📢Группа номинаций, которая объединяет две важные сферы - образование и просвещение и социальную ответственность.
Области, где на первом месте стоит человечность, где закон встречается с состраданием.
Лауреатыв номинации «Социальная ответственность»
✅Вафина Венера Марсовна
✅ Стоцкая Наталия Игоревна - исполнительный директор Коллегии адвокатов «А1»
✅Львова Наталья Игоревна
#деловоесобрание#форум#probono#награда
⬇️⬇️⬇️
📍Россия - это не только Москва.
Это огромная страна возможностей, особенно сейчас, когда мы открываем новые горизонты сотрудничества с регионами и выстраиваем связи с мировым сообществом в новых условиях.
Номинация - для тех, кто помогает московскому бизнесу расти за пределами столице, кто строит мосты между регионами, развивает международное сотрудничество и помогает предпринимателям адаптироваться к новой экономической реальности
Лауреат в номинации «Межрегиональное сотрудничество и взаимодействие с новыми субъектами РФ»
✅ Толмаченко Антон Сергеевич - генеральный директор ООО "Ван Спецтех"
#деловоесобрание#форум#probono#награда
🤍Номинация посвящена тем, кто стоит на страже законности и справедливости. Тем, кто помогает бизнесу ориентироваться в сложном мире административных процедур и государственной поддержки.
Лауреат в номинации«Государственная поддержка»
✅ Сатинина Елена Алексеевна общественный Уполномоченный по мерам государственной поддержки МСП
#деловоесобрание#форум#probono#награда
⏰Знания и финансы - два кита, на которых стоит успешный бизнес.
Номинация - для тех, кто помогает предпринимателям ориентироваться в сложном мире отраслевых особенностей и налогового законодательства, кто помогает бизнесу быть законопослушным и при этом эффективным.
Лауреаты в номинации«Отраслевая экспертиза»
✅Ржанковский Алексей Владимирович - общественный Уполномоченный по техническому урегулированию
✅ Аверина Татьяна Николаевна - генеральный директор АПИК
#деловоесобрание#форум#probono#награда
⬇️⬇️⬇️
⏰Мы живём в эпоху цифровых трансформаций.
Номинация посвящена тем, кто помогает бизнесу не просто адаптироваться к новому миру, но и использовать его возможности.
Искусственный интеллект, блокчейн, цифровые платформы, интеллектуальная собственность — это слова, которые ещё недавно казались фантастикой. Сегодня это реальность бизнеса. Но реальность сложная, постоянно меняющаяся, где законы не успевают за технологиями.
Эти эксперты — проводники в цифровое будущее. Они защищают самое ценное: идеи, бренды, инновации, которые делают каждый бизнес уникальным.
Лауреат вноминации «Интеллектуальное право» ✅Герасин Борис Валерьевич - руководитель Патентного офиса Сбера. Председатель Центра по интеллектуальной собственности при омбудсмене Москвы. Заместитель председателя Совета по интеллектуальной собственности ТПП РФ. Евразийский и российский патентный поверенный
#деловоесобрание#форум#probono#награда
⬇️⬇️⬇️
🔥В мире права и бизнеса всё чаще звучат сильные женские голоса. Это голоса профессионалов, которые не просто работают на равных - они задают новые стандарты, вдохновляют и ведут за собой.
Победитель в номинации
«Женское лидерство»
✅Галимарданова Татьяна Павловна — адвокат, член Союза юриста блогеров при Ассоциации юристов России, куратор института pro Bono при Уполномоченном города Москвы
#деловоесобрание#форум#probono#награда
⬇️⬇️⬇️
🔥Передавать знания — это искусство. Быть наставником — это призвание. Это умение не просто дать ответ, но научить задавать правильные вопросы.
Не просто решить проблему, но показать путь к решению.
Победитель в номинации
«Лидер общественного обсуждения»
✅Самошкина Алёна Николаевна — заместитель руководителя Центра законодательных инициатив, куратор института pro Bono
#деловоесобрание#форум#probono#награда
⬇️⬇️⬇️
🔥Знания и финансы - два кита, на которых стоит успешный бизнес.
Номинация - для тех, кто помогает предпринимателям ориентироваться в сложном мире отраслевых особенностей и налогового законодательства, кто помогает бизнесу быть законопослушным и при этом эффективным.
Победитель в номинации «Отраслевая экспертиза» ✅Ускова Анастасия Андреевна — общественный уполномоченный по защите бизнеса в сфере цифровых финансовых технологий
#деловоесобрание#форум#probono#награда
⬇️⬇️⬇️
🔥Право создаётся не только в кабинетах и залах суда. Оно рождается в диалоге — открытом, честном, профессиональном. В обсуждениях, где сталкиваются разные точки зрения и рождается истина.
Победитель в номинации
«Деловое партнерство»
✅Яппарова Инга Вячеславовна — директор Ассоциации «Деловое собрание»
#деловоесобрание#форум#probono#награда
⬇️⬇️⬇️
28 ноября состоялась торжественная церемония награждения рейтинга экспертов Уполномоченного — «Pro Bono-300».
Это рейтинг настоящих героев бизнес-среды — экспертов, которые бескорыстно делятся своими знаниями и опытом (pro bono) для защиты прав предпринимателей, улучшения делового климата и формирования эффективной государственной политики в столице. ⚖️📊
В рейтинг вошли: юристы и адвокаты, экономисты и финансисты, арбитражные управляющие и преподаватели. Это сообщество профессионалов, готовых менять среду к лучшему.
Представители Экосистемы «Деловое собрание» получили от Бизнес-омбудсмена Москвы в рейтинге pro Bono свои награды.
#деловоесобрание#форум#probono#награда
⬇️⬇️⬇️