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

Пребарај: #davidwatkyns

当前筛选 #davidwatkyns清除筛选

🎶 Дэвид Уоткинс «Рождество в Кейптауне» 🎄 _____________ 🎶David Watkyns Christmas in Cape Town🎄 Christmas In Cape Town You won’t see any snowfall At this time of year No reindeer in the valley As the mistletoe appears And underneath the blue sky Is a perfect summer’s day with beaches filled with people All the beauty on display Cause when it's Christmas in Cape Town There's happiness and joy And smiles upon the faces Of every boy and girl The sun is shining brightly Over mountains and the seas When it’s Christmas in Cape Town It’s a special place to be Take a walk on Table Mountain Or on the grand parade And we’ll see the minstrels dancing With an umbrella for shade In the night-time there’ll be music New people you can meet And the lights will shine down brightly All the way down Adderley Street And there’s not another place I’d rather be Cause when it's Christmas in Cape Town There's happiness and joy And smiles upon the faces Of every boy and girl The sun is shining brightly Over mountains and the seas When it’s Christmas in Cape Town It’s a special place to be When it's Christmas in Cape Town There's happiness and joy And smiles upon the faces Of every boy and girl The sun is shining brightly Over mountains and the seas When it’s Christmas in Cape Town It’s a special place to be, to be And the sun is shining brightly Over mountains and the seas When it’s Christmas in Cape Town It’s a special place for me 📹https://www.youtube.com/watch?v=_Zr_Ub94muk #Christmas#SouthAfrica#Capetown#DavidWatkyns#Music

🎶 Дэвид Уоткинс «Рождество в Кейптауне» 🎄 _____________ 🎶David Watkyns Christmas in Cape Town🎄 Christmas In Cape Town You won’t see any snowfall At this time of year No reindeer in the valley As the mistletoe appears And underneath the blue sky Is a perfect summer’s day with beaches filled with people All the beauty on display Cause when it's Christmas in Cape Town There's happiness and joy And smiles upon the faces Of every boy and girl The sun is shining brightly Over mountains and the seas When it’s Christmas in Cape Town It’s a special place to be Take a walk on Table Mountain Or on the grand parade And we’ll see the minstrels dancing With an umbrella for shade In the night-time there’ll be music New people you can meet And the lights will shine down brightly All the way down Adderley Street And there’s not another place I’d rather be Cause when it's Christmas in Cape Town There's happiness and joy And smiles upon the faces Of every boy and girl The sun is shining brightly Over mountains and the seas When it’s Christmas in Cape Town It’s a special place to be When it's Christmas in Cape Town There's happiness and joy And smiles upon the faces Of every boy and girl The sun is shining brightly Over mountains and the seas When it’s Christmas in Cape Town It’s a special place to be, to be And the sun is shining brightly Over mountains and the seas When it’s Christmas in Cape Town It’s a special place for me 📹https://www.youtube.com/watch?v=_Zr_Ub94muk #Christmas#SouthAfrica#Capetown#DavidWatkyns#Music