Можно ли в 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
#DAX
headlines GEO (про США и Европу)
🟤Трамп объявил, что дополнительные тарифы в 10% вступят в силу с 1 февраля для Дании, Норвегии, Швеции, Франции, Германии, Нидерландов, Финляндии и Великобритании, и могут быть увеличены до 25% к 1 июня, если США не получат согласие на покупку Гренландии.
🟤Европейские промышленники опасаются, что это нарушит достигнутые США торговые соглашения с ЕС и Великобританией и навредит восстановлению немецкой экспортно-ориентированной экономики.
🟤Уже действующие тарифы США отягощают немецкие компании. Общий объем немецкого экспорта в США в период с января по ноябрь 2025 г. снизился примерно на 9% по сравнению с предыдущим годом. На фоне вчерашних новостей о тарифах рынок Германии открылся с гэпом в -0.87%.
🟤В ответ ЕС разрабатывают меры, которые ограничат доступ США к европейским рынкам услуг, закупкам и инвестициям, или же введение ответных пошлин на американские товары на сумму около $116–118 млрд.
🇩🇪#рынки#Германия#DAX
👆 Много спрашивают по немецкому DAX - почему такой мега рост на фоне рецессии? 🤷♂️ Ну точно никто не знает, но судя по моментуму на месячном! интервале - расти долго он не сможет...
🚀 European Stock Markets Open with Declines
European stock markets opened with widespread declines on April 13, according to BlockBeats. The Euro Stoxx 50 index fell by 1.02%, while Germany's DAX index dropped 1.42%. The UK's FTSE 100 index decreased by 0.5%, Spain's IBEX 35 index declined 1.06%, and France's CAC 40 index saw a reduction of 0.89%.
#EuropeanStockMarkets#Declines#EuroStoxx50#DAX#FTSE100#IBEX35#CAC40#StockMarket
#Результаты_schrittproschritt
Всем привет! 👋 Извиняюсь за паузу — переезд в пустую квартиру, бесконечные переработки (иногда даже по воскресеньям) и штробление стен в законный «оконный час» после работы, чтобы успеть до Ruhezeit, не оставляли ни сил, ни времени писать.
Вчера выбросил последний габаритный мусор после ремонта — де-факто все объёмные работы закрыты. Значит, можно вернуться к традиционному отчёту за месяц. 📆
📊 Детализация портфеля на дату отчёта
Формат: (Актив на дату) / (% от портфеля) 📈📉 (Прибыль за период) / (Доходность в %)
🔹#Акции
€10 911,62 / 64,97% 📈 +€398,79 / +3,79%
• Фарма отлично росла.
• В целом #DAX просел, #Lufthansa и #DHL особенно: подняли плату за стоянку самолётов в аэропортах — лоукостеры уже грозятся уходить ✈️
🔹#Облигации
€509,81 / 3,04% 📉 −€3,48 / −0,68%
Обычная месячная флуктуация — без поводов для драм.
🔹#Металлы (золото)
€109,07 / 0,65% 📈 +€6,30 / +6,13%
Крупные деньги чуят запах жареного и продолжают уходить в золото🔥
🔹#Криптовалюта
€4 258,38 / 25,45% 📈 +€303,31 / +7,67%
Когда-то я ждал «альтернативную Ёлку», теперь — альтсезон. По росту похоже, что мы уже в нём. Особенно радует монета, купленная в мае: бессовестно болталась в минусах, а теперь вернула всё с лихвой (60%+) 🚀
🔹#Альтернативные_инвестиции
€1 005,39 / 6,01% 📉 −€29,50 / −2,85%
Стабильность — она такая: купленный на старте продаж набор #LEGO медленно, но верно теряет в цене. В первые пару лет прибыли и не жду — в следующий раз следует брать на излёте «жизни» набора.
С этого месяца учитываю долю (stake) в стартапе: акции пока не обращаются, оценка неизменна. 🧱🚗
📈 Общие итоги портфеля
Общая стоимость: €16 794,27
Прирост за период: +€675,42 / +4,19%
Портфель публичный и доступен по ссылке: https://bit.ly/sps_portfolio
Внушительный месячный рост радует, но на душе неспокойно, поэтому не делаю резких движений: изнутри вижу, как чувствует себя локальная экономика — подозреваю, что не только она выглядит бледновато. Был на #IAA в Мюнхене: тучи над немецким «двигателем» очевидны. Новый канцлер всё ещё не перестроился в левую полосу автобана, а обещанных реформ в нужном объёме пока не видно — Vollgas бы уже не помешал. 🛣️⚙️
Осенью большие планы по блогу: появился отдельный кабинет — буду писать чаще, менять формат и не только. Спасибо, что читаете! 🙌
Как у вас дела в финансах после этого месяца? Делитесь в комментариях 👇
#Результаты_schrittproschritt
Всем привет! Сегодня подводим итоги прошлого года. Данные за период с 1 января 2025 по 4 января 2026
🔹#Акции
€11 578,78 / 71,58% 📈 +€9 744,08 / +531,10%
Доля акций достигла более семидесяти процентов портфеля и увеличилась почти на 10 000 евро. Лучше всего показали себя ставки на технологии GLP-1: одна только #GPCR дала 162% роста. Не подкачал и немецкий стокпикинг: 23% роста на широком индексе #DAX и 43% взлёт #LHA (Lufthansa).
🔹#Облигации
€510,81 / 3,16% 📈 +€107,63 / +26,70%
В этом году планирую нарастить долю бондов, а то грустно смотреть на такую аллокацию.
🔹#Металлы (#золото)
€127,42 / 0,79% 📈 +€38,70 / +43,62%
Беспрецедентное ралли золота, в котором я почти не поучаствовал, а теперь даже жалко докупать. По идее, надо доводить уровень до плановых 5% в портфеле, или, может, оставить всё как есть? 📀
🔹#Криптовалюта
€2 893,00 / 17,89% 📉 −€1 400,00 / −32,61%
Главные аутсайдеры года — цифровые активы. Особенно те, что связаны с мсье DuRove и его демонстративным сумасшествием: #TON (-71%) и #NOT (-91%). Кто же знал, что он начнёт направо и налево свой эякулянт раздавать и стремиться создать легион детишек с ранним облысением. Однако, помимо его проектов, валилось всё и сильно, разве что кроме #BNB (+12%) и #TRX (+2,7%). Радует разве что тот факт, что по всем активам я в масштабном плюсе, несмотря на трагичный для них год 📉
🔹#Альтернативные_инвестиции
€1 065 / 6,58% 📈 +€535,00 / +100,94% В целом все активы из данной категории стабильно переоценивались в сторону меньшей стоимости, кроме разве что стейка в стартапе. Мне тут на день рождения ещё в сентябре подарили шлем Джанго Фетта из #LEGO, который стоило бы оценить и добавить сюда, но его я покажу чуть позже. 🧱🏎️
📈 Общие итоги портфеля
Если верить сервису (по ссылке вы можете получить скидку, и я, может быть, тоже что-нибудь получу), где я веду публичный портфель, результат года за вычетом всех вложений:
📈+€494,95
При таком минусе по криптовалютам и в целом нестабильной мировой обстановке считаю результат достойным! Ну, а вы что думаете? Пишите в комментариях 🔽💬