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

Пребарај: #empower

当前筛选 #empower清除筛选
DWF Labs Broadcast

@Dwflabs · Post #125 · 30.12.2022 г., 03:34

We're receiving a stream of good news before the year-end 👀💥 Conflux Network is expanding into Hong Kong and working to accelerate #web3 integration into the traditional internet business and economies 🫡 ▫️Dr. Ming Wu, co-founder of Conflux Network, was invited to Hong Kong to speak with various government and private organizations about the digital economy, innovation and technology, and has reached an initial strategic cooperation intention. ▫️Conflux is currently registering related entities for the entry into Hong Kong, solidifying its role as foundational infrastructure for Web3. ▫️This follows October’s announcement of the “Policy Declaration on the Development of Hong Kong Virtual Assets” which has paved the way for a more hospitable blockchain environment in Hong Kong. We're privileged to be able to support your continuous development and hard work to further #empower and grow tech innovation as well as the larger #Web3 adoption. Read more here.

Venture Village Wall 🦄

@venturevillagewall · Post #3617 · 21.12.2024 г., 10:22

Skynet Raises $1.20M Skynet has successfully raised $1.20 million to enhance its platform, which aims to empower AI agents to connect seamlessly with global resources. For more information, visit Skynet. #Skynet#AI#Funding#Resources#Tech#Innovation#Investment#Global#Agents#Platform#Development#Seamless#Connect#Empower#Industry#Tools

Venture Village Wall 🦄

@venturevillagewall · Post #3401 · 18.12.2024 г., 12:10

Askable Raises $14.04M Askable has successfully raised $14.04 million as of December 11, 2024, offering a powerful research platform that connects users with top researchers and ideal participants for quick insights and faster decision-making. More details at Askable. #Funding#Research#Insights#Platform#Participants#Decisions#Teams#Technology#Fast#Access#Empower#Global#Data#Analytics#Investments#Startups#Business#Growth#Innovation#Online