TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #241 · 5 мај

Можно ли в 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

Hashtags

Резултати

Пронајдени 3 слични објави

Пребарај: #rpi

当前筛选 #rpi清除筛选
SaintBytеChannel

@saintbyte_channel · Post #484 · 08.07.2025 г., 16:52

Шел второй день жары — для акклиматизации ещё маловато. Половину дня провёл в бассейне. В который раз убедился, что в такую погоду лучше всего заниматься природой дистанционно, потому что человек вообще хрупкое существо, а уж я и подавно... Если задуматься о моей физической уязвимости, раньше я ежегодно сгорал даже на скромном уральском солнышке, регулярно получал тепловрй удар тоже на Урале (там однажды перегрелся и потерял сознание). Но самый весёлый случай произошёл именно на Юге, в Должанке: получил тепловой удар с подъёмом температуры аж до сорока градусов!А ощущение холода при высокой температуре — это отдельная история: помню, как сидел за компьютером, стучал пальцами по клавиатуре, всё сильнее мёрз, постепенно начал мелко дрожать, настолько сильно, что пальцы сбивались мимо кнопок. Подумалось неладное — измерил температуру: сорок градусов ровно! Дальше действуем строго по протоколу: выпиваю залпом литр воды и отправляюсь спать. Утром проснулся совершенно здоровым человеком. Жарко и настроение у меня хреновое и по этому я решил поругаться в одном проекте. Ибо выхлопа с проекта нету , процессов нету. Буду обострять потому что мне "надо больше золота" Про дистанционно изучать природу , пытаюсь разобраться как собрать собственный мелкий дистр для малины. Пока разобрался в двух вещах: 1. Качать ОС для малины надо 🍇отсюда. 2. Надо поставить unxz и потому unxz 2025-05-13-raspios-bookworm-arm64-lite.img.xz как результат будет 2025-05-13-raspios-bookworm-arm64-lite.img . Это образ уже можно лить на SD карточку по средствам dd 3. fdisk -l 2025-05-13-raspios-bookworm-arm64-lite.img и там обнаруживается два раздела: Диск 2025-05-13-raspios-bookworm-arm64-lite.img: 2,57 GiB, 2759852032 байт, 5390336 секторов Единицы: секторов по 1 * 512 = 512 байт Размер сектора (логический/физический): 512 байт / 512 байт Размер I/O (минимальный/оптимальный): 512 байт / 512 байт Тип метки диска: dos Идентификатор диска: 0xd9c86127 Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип 2025-05-13-raspios-bookworm-arm64-lite.img1 16384 1064959 1048576 512M c W95 FAT32 (LBA) 2025-05-13-raspios-bookworm-arm64-lite.img2 1064960 5390335 4325376 2,1G 83 Linux Теперь медленно и печально думаю надо разделами к тому же опыт создание башем разделов у меня есть. Прошёл Heretic. Фото в посте — это то, что в конце игры, после прохождения всех уровней. #rpi

Hashtags

GitHub Trends

@githubtrending · Post #14879 · 28.06.2025 г., 14:30

#cplusplus#cpp#hacktoberfest#iot#iot_device#iot_edge#microcontroller#microsoft_for_beginners#python#raspberry_pi#rpi You can learn the basics of the Internet of Things (IoT) through a free 12-week course with 24 lessons that guide you step-by-step in building real projects like plant monitoring, vehicle tracking, and smart cooking timers. Each lesson includes quizzes, instructions, challenges, and solutions to help you understand sensors, cloud connections, security, and AI on devices. The course uses real hardware or virtual options, making it easy to practice hands-on skills. This project-based learning helps you gain practical IoT knowledge useful for many industries, improving your tech skills and job readiness. https://github.com/microsoft/IoT-For-Beginners