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 слични објави

Пребарај: #digitalbridge2022

当前筛选 #digitalbridge2022清除筛选
AloqaVentures

@AloqaVentures · Post #54 · 03.10.2022 г., 11:38

AloqaVentures принял участие в международном форуме Digital Bridge 2022, который прошел в Астане 28-29 сентября с участием мировых IT-компаний, международных экспертов из сферы ІТ-инноваций. Форум объединил на своей площадке почти 25 тысяч участников, 300 IT-компаний, 150 венчурных инвесторов и бизнес-ангелов, свыше 300 спикеров и 100 стартапов из 15 стран мира. Наш фонд активно вел стратегические переговоры с другими венчурными фондами о совместных инвестициях в инновационные стартап-проекты. AloqaVentures открыт для всех, кто планирует войти на рынок Узбекистана. #venturecapital#digitalbridge2022#Uzbekistan

AloqaVentures

@AloqaVentures · Post #53 · 03.10.2022 г., 11:38

AloqaVentures 28-29 sentabr kunlari Ostona shahrida jahon kompaniyalari rahbarlari, IT-innovatsiyalar sohasidagi eng yaxshi xalqaro ekspertlar ishtirokida raqamli texnologiyalar va biznes bo‘yicha Digital Bridge 2022 xalqaro forumida ishtirok etdi. Forumda dunyoning 15 mamlakatidan 25 mingga yaqin ishtirokchi, 300 IT-kompaniya, 150 venchur investor va "biznes-angel "300 dan ortiq maʼruzachilar va 100 dan ortiq startaplar jamlandi. Jamg'armamiz innovatsion startap loyihalariga qo'shma investitsiyalar kiritish bo'yicha boshqa venchur fondlar bilan faol strategik muzokaralar olib bordi. Shuningdek, fondimiz O‘zbekiston bozoriga kirishni rejalashtirgan barcha startap egalari uchun ochiq. #venturecapital#digitalbridge2022#Uzbekistan