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

Резултати

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

Пребарај: #artelmobile

当前筛选 #artelmobile清除筛选
Artel

@artelelectronics · Post #205 · 16.03.2021 г., 09:41

💫 O'ziga hos Т10 smartfoni foydalanishda qulay, ko'p funksiyali va sodda boshqaruvga ega. ✨Akkumulyator- 4050 мАc; ✨Asosiy kamera - 48 Мp + 8 Мp + 2 Мp; ✨Old kamera - 16 Мp; ✨Ekran o'lchamlari - 1080x2340pх (19.5:9). ______________ 💫Лаконичный смартфон Т10 прост в использовании, но многофункционален и удобен в исполнении. ✨Батарея - 4050 мАч; ✨Основная камера - 48 Мп + 8 Мп + 2 Мп; ✨Фронтальная камера - 16 Мп; ✨Разрешение - 1080x2340pixel (19.5:9). #Artel#ArtelMobile#T10

Artel

@artelelectronics · Post #161 · 17.02.2021 г., 13:24

🌈Air - HD + formatida yorqin ranglarni aks ettiruvchi samarali smartfon. ✨Operatsion tizim - Android 10 Q; ✨Ekran o'lchamlari - 720x1600 pixel (20:9); ✨Displey turi - tomchi; ✨RAM -4 Gb; ✨ROM - 64 Gb; ✨Akkumulyator - 4000 мАs; ✨Asosiy kamera - 16 Мp + 8 Мp + 2 Мp; ✨Frontal kamera - 13 Мp. _________________ 🌈Air - производительный смартфон, отображающий яркие краски в формате HD+. ✨Операционная система - Android 10 Q; ✨Разрешение - 720x1600 pixel (20:9); ✨Тип дисплея - капля; ✨RAM -4 ГБ; ✨ROM - 64 ГБ; ✨Батарея - 4000 мАч; ✨Основная камера - 16 Мп + 8 Мп + 2 Мп; ✨Фронтальная камера - 13 Мп. #Air#Artel#ArtelMobile

Artel

@artelelectronics · Post #100 · 28.12.2020 г., 07:19

📱Smarfonning barcha imkoniyatlaridan to'lig'icha foydalaning! ⚡️Artel Air quvvati Wi-FI, mobil internet, messendjer va brauzerlardan faol tarzda foydalanganingizda ham bemalol 1 kunga yetadi. ✅Android - 10 Q; ✅Akkumulyator 4000 mAs; ✅Xotira 64 GB; ✅Asosiy kamera- 16 Mp + 8 Mp + 2 Mp; ✅Frontal kamera - 13 Mp. __________ 📱Используйте смартфон на полную катушку. ⚡️Заряда аккумулятора Artel Air хватит на целый день с включенными Wi-Fi, мобильным интернетом, мессенджерами и браузерами. ✅Android - 10 Q; ✅Аккумулятор 4000 mAч; ✅Память 64 Гб; ✅Основная камера- 16 Мп + 8 Мп + 2 Mп; ✅Фронтальная камера - 13 Mп. #artel#arteluz#artelmobile#artelair Bizning saytimiz | Facebook | Instagram

Artel

@artelelectronics · Post #214 · 19.03.2021 г., 12:32

📱F2 - biznes muzokaralar uchun mo'ljallangan bejirim tugmali telefon. ✨Xotira - ROM 4MB + ОЗУ 4MB; ✨Akkumulyator - 800mAs; ✨O'lchamlari - 112.1 х 49.3 х 14.7 mm; ✨Micro USB, 3.5mm audio jack, yoritgich. ______________ 📱F2 - простой и компактный кнопочный телефон для делового общения. ✨Память - ПЗУ 4MB + ОЗУ 4MB; ✨Аккумулятор - 800mAh; ✨Размеры - 112.1 х 49.3 х 14.7 мм; ✨Micro USB , 3.5mm audio jack , Фонарик. #Artel#ArtelMobile#F2#telefon