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

Резултати

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

Пребарај: #physicaltechnicalinstitute

当前筛选 #physicaltechnicalinstitute清除筛选

🤔Yarimo‘tkazgichlar sohasini rivojlantirish istiqbollari 🎓 Biznes va tadbirkorlik oliy maktabida Malayziya va Koreya ekspertlari, vazirliklar, ilmiy-tadqiqot institutlari va oliy ta’lim muassasalari vakillari ishtirokida yarimo‘tkazgichlar sanoatini rivojlantirish masalalariga bag‘ishlangan davra suhbati bo‘lib o‘tdi. 🌀 Tadbir ochilishida Biznes va tadbirkorlik oliy maktabi vakili so‘zga chiqib, O‘zbekistonda yarimo‘tkazgichlar sohasini rivojlantirish istiqbollari, ilmiy-amaliy tadqiqotlarning ahamiyati hamda xorijiy tajribani o‘rganish zarurligini ta’kidladi. ✅ Shundan so‘ng ishtirokchilar kadrlar tayyorlash, ilmiy ishlanmalarni amaliyotga tatbiq etish va ishlab chiqarishda mahalliylashtirish masalalarini muhokama qildilar. Malayziya va Koreya ekspertlari o‘z mamlakatlari tajribasi, mavjud muammolar va ularni yechish bo‘yicha olib borilayotgan ishlarga oid ma’lumotlar bilan o‘rtoqlashdi. Shuningdek, “O‘zeltexsanoat” uyushmasi, Ion-plazma va lazer texnologiyalari instituti, Yarimo‘tkazgichlar fizikasi va mikroelektronika instituti, hamda boshqa tashkilotlarning tashabbuslari taqdim etildi. 🤝 Yakunida ishtirokchilar ilmiy ishlanmalar asosida yarimo‘tkazgich mahsulotlari ishlab chiqarish, komponentlarni mahalliylashtirish, kadrlar tayyorlash va xalqaro hamkorlikni kengaytirish bo‘yicha hamkorlik qilishga kelishib oldilar. 🇷🇺RU 🇬🇧ENG #GSBE#GraduateSchool#PhysicalTechnicalInstitute#StartupProjects 🔝Web-site |🔝Facebook | 🔝Instagram | 🔝Youtube

🧊Yarimo‘tkazgichlar va mikroelektronika sohasida innovatsion hamkorlik yo‘lga qo‘yilmoqda 🇺🇿O‘zbekiston Fanlar akademiyasi Fizika-texnika instituti va Biznes va tadbirkorlik oliy maktabi o‘rtasida yarimo‘tkazgichlar va mikroelektronika sohasini rivojlantirish bo‘yicha innovatsion hamkorlik yo‘lga qo‘yilmoqda. Uchrashuvda institutda yarimo‘tkazgichlar yo‘nalishida olib borilayotgan ilmiy-tadqiqot ishlar, institut yo‘nalishining boshqa ITlardan farqi va o‘rni, dizayn markazi tashkil etish loyihasi, xalqaro hamkorlik, O‘zbekistonda yarimo‘tkazgich va mikroelektronika mahsulotlari ishlab chiqarish xolati va imkoniyatlari, startap loyihalar amalga oshirish bo‘yicha o‘zaro hamkorlik masalalari muhokama qilindi. 🔹Batafsil 🇷🇺RU 🇬🇧ENG #GSBE#GraduateSchool#PhysicalTechnicalInstitute#StartupProjects 🔝Web-site |🔝Facebook | 🔝Instagram | 🔝Youtube