Можно ли в 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
Eng yaxshi tamaddi 🥖🍶
Endi tandirdan chiqqan, qaynoqqina non va juda mazali qaymoqdan ham yaxshiroq nima bo'lishi mumkin? Bu nozik tekstura va boy ta'mning ajoyib uyg'unligi bo'lib, sizni uni birinchi qoshiqdanoq sevib qolasiz!
Eng zo'r tamaddi uchun Kallehni tanlang. 😋👌
➖
Идеальный перекус 🥖🍶
Что может быть лучше, чем свежая, горячая лепёшечка и наш невероятно вкусный каймак? Это идеальное сочетание нежной текстуры и богатого вкуса, которое заставит вас влюбиться с первой ложки!
Выбирайте Kalleh для идеального перекуса. 😋👌
Заказать| Telegram| Instagram| FB| Web
#qaymaq#kalleh#kallehuz#non
📢 Разыгрываем пригласительные билеты на ярмарку non/fiction#26 👇
Расскажите про наши мероприятия друзьям и получите пригласительный билет на ярмарку на 6 декабря! Как?
1. Быть подписчиком нашей группы.
2. Поставить 👍 и сделать репост записи с программой презентаций (в закрепе сообщества📍) на своей странице с открытым профилем сегодня до 20 ч.
3. Написать в сообщения сообщества «Хочу пригласительный».
❗5 пригласительных билетов будут разыграны сегодня вечером среди всех, кто сделал репост❗
Заранее пишите свои фамилию и имя в личные сообщения группы!
#кучковополе#мероприятияКП#презентацияКП#non/fiction
📖Уже завтра 05 декабря открытие выставки Non/fiction#26 в Гостином дворе и наша первая презентация! Семён Экштут «Миф и история»🔥
🟢5 декабря (четверг)
🕐14:00–14:45 Пресс клуб
📚«Миф и история»
Петр I, Екатерина II, граф Аракчеев, генерал Милорадович, канцлер Горчаков, «наше всё» Пушкин, а также ряд героев второго плана императорского периода российской истории представлены в книге под необычным и провокативным ракурсом — как герои рукотворных исторических мифов. Диалектика мифа такова, что сокрушая «нас возвышающий обман» старого мифа «тьмой низких истин» вновь выявленных фактов, мы не уничтожаем мифологическое сознание как таковое, а лишь расчищаем поле и создаем благоприятные условия для взращивания нового мифа.
◾️Спикеры:
🔸Семён Экштут — заместитель шеф-редактора журнала «Родина», доктор философских наук, автор книги;
🔸Елена Ратникова — редактор сайта журнала «Родина».
#кучковополе#мероприятияКП#презентацияКП
#non/fiction26 #Родина#Экштут
https://kpole.ru/catalog/istoriya-istoricheskie-nauki/ekshtut-s-a-mif-i-istoriya/
❗️Программа презентаций КП на Non/fiction#26 в Гостином дворе (часть 2)
🟢8 декабря (воскресенье)
🕐15:15 —16:00
Пресс-клуб
📚«Несбывшиеся мечты Якова Фризера. Судьба еврейского золотопромышленника в Сибири»
Глубокий рассказ о жизни и деятельности известного сибирского предпринимателя, золотопромышленника Якова Фризера (1869–1932), который родился в еврейской семье ссыльнопоселенца в маленьком сибирском городке Баргузине и «выбился в люди» благодаря своим способностям и таланту. Через историю одного отдельного человека показана история развития сибирской золотопромышленности конца XIX — начала XX вв., особенности революционных событий в Восточной Сибири и эмиграции в Харбине. Книга основана на личном архиве Я. Д. Фризера, сохранившемся у его потомков в Израиле, а также многочисленных документах из архивов Москвы, Санкт-Петербурга, Иркутска, Хабаровска, его статьях и книгах.
◾️Спикеры:
🔸Ирена Владимирски — д.и.н., профессор Академического колледжа Ахва (Израиль);
🔸Мария Кротова — д.и.н., профессор СПбГЭУ;.
🔸Светлана Амосова — руководитель Исследовательского центра ЕМЦТ;
🔸Мария Зарх — ведущий научный сотрудник Исследовательского центра ЕМЦТ;
🔸Федор Андреев — директор издательства.
🕐18:15 —19:00
Лекторий
📚«Свидетельствовать до конца» (дневник Виктора Клемперера)
Филолог, профессор романских языков Виктор Клемперер — немецкий еврей, женатый на немке, — перенес все тяготы и унижения нацистского режима в Дрездене, но избежал уничтожения. День за днем он вел дневник, подробно описывая все происходившее с ним и вокруг него. «Речь идет не о крупных событиях, а о тирании повседневности, о которой забудут. Тысяча комариных укусов хуже, чем удар по голове. Я наблюдаю и записываю комариные укусы». Дневники, охватывающие период 1933-1945 г., впервые переведены на русский язык.
◾️Спикеры:
🔸Константин Залесский — историк, автор вступительной статьи и комментариев к русскому изданию;
🔸Светлана Амосова — руководитель Исследовательского центра ЕМЦТ;
🔸Мария Зарх — ведущий научный сотрудник Исследовательского центра ЕМЦТ;
🔸Федор Андреев — директор издательства «Кучково поле».
Будем рады видеть всех желающих на наших мероприятиях и, конечно, на стенде издательства
📍А-6
Режим работы ярмарки:
11:00 - 21 :00 (8 декабря до 20:00)
Приобрести билеты и посмотреть полную программу мероприятий👇
https://moscowbookfair.ru/
#кучковополе#мероприятияКП#презентацияКП
#non/fiction26 #ЕМЦТ#родина#Экштут#Прокофьева#Рождество#Фризер#Клемперер#ИванГрозный#Панова
❗️Программа презентаций КП на Non/fiction#26 в Гостином дворе (часть 1)
🟢5 декабря (четверг)
🕐14:00–14:45
Пресс клуб
📚«Миф и история»
Петр I, Екатерина II, граф Аракчеев, генерал Милорадович, канцлер Горчаков, «наше всё» Пушкин, а также ряд героев второго плана императорского периода российской истории представлены в книге под необычным и провокативным ракурсом — как герои рукотворных исторических мифов. Диалектика мифа такова, что сокрушая «нас возвышающий обман» старого мифа «тьмой низких истин» вновь выявленных фактов, мы не уничтожаем мифологическое сознание как таковое, а лишь расчищаем поле и создаем благоприятные условия для взращивания нового мифа.
◾️Спикеры:
🔸Семен Экштут — заместитель шеф-редактора журнала «Родина», доктор философских наук, автор книги;
🔸Елена Ратникова — редактор сайта журнала «Родина».
🟢6 декабря (пятница)
🕐16:15-17:00
Литературное кафе
📚«Иван Грозный, его предки и родня. История в лицах»
Т. Д. Панова вывела семейную хронику московской правящей династии XVI в., основанную не только на письменных источниках, но и на результатах исследований останков некоторых предков царя Ивана IV, его самого, четырех его жен, детей, невесток и внучки. Новые данные позволяют составить представление о физическом состоянии людей, реконструировать облик некоторых из них и выстроить портретную галерею родных и близких Грозного, аргументированно критикуя мифы об их жизни и причинах смерти.
◾️Спикеры:
🔸Татьяна Панова — д.и.н., главный археолог (заведующая археологическим отделом) музея-заповедника «Московский Кремль», автор книги;
🔸Ольга Сухарева — главный редактор издательства.
🟢7 декабря (суббота)
🕐12:00 —12:45
Пресс-клуб
📚«Традиции и истории Рождества»
Праздничное издание от известного автора серии книг о «мире забытых вещей» и «тайнах и историях Светлой Пасхи». Ольга Прокофьева воссоздает настроение зимних праздников дореволюционной России с ароматом смолистых рождественских елей, окутанных мягким светом елочных свечей, шуршанием от раскрываемой подарочной упаковки, праздничными яствами, звоном хрустальных бокалов, прогулками на лихих тройках. Весь материал, охватывающий XIX — первое десятилетие XX века, разбит на главы в соответствии с календарем по старому стилю, что дает читателям возможность восстановить последовательность праздников в их естественном историческом контексте и позволяет сохранить подлинный дух времени, характерный для дореволюционной России.
◾️Спикеры:
🔸Ольга Прокофьева — коллекционер, исследователь старинных предметов, автор книги; 🔸Ольга Сухарева — главный редактор издательства;
🔸Федор Андреев — директор издательства.
Продолжение в следующем посте!
#кучковополе#мероприятияКП#презентацияКП
#non/fiction26 #ЕМЦТ#родина#Экштут#Прокофьева#Рождество#Фризер#Клемперер#ИванГрозный#Панова