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

Резултати

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

Пребарај: #byo

当前筛选 #byo清除筛选
NEA Singapore

@NEASingapore · Post #595 · 23.07.2023 г., 02:00

Can’t fit all your purchases into one reusable bag? Pack a few more, just in case! You’ll never know when you need to pick up a few things while you’re out 😊 #SayYestoWasteLess#BYO

NEA Singapore

@NEASingapore · Post #503 · 11.02.2023 г., 02:01

Reusable bags can be easily thrown into the washing machine or spot cleaned. While they do require more care, they can be reused many more times than their plastic counterparts making them better for the environment! #SayYestoWasteLess#BYO

NEA Singapore

@NEASingapore · Post #284 · 23.11.2021 г., 03:30

Instead of dining out, dabao some delicious hawker fare for elderly family members or neighbours so that they can stay home and stay safe. Remember to bring your along reusable containers to reduce single-use disposables. #BYO#SayYEStoWasteLess

NEA Singapore

@NEASingapore · Post #192 · 21.05.2021 г., 06:00

It’s time to put our reusables to its best use! Don’t forget to leave the house with reusable bottles and containers when tabao-ing your morning coffee, lunch or dinner from your favourite food stalls. #SayYEStoWasteLess#BYO

NEA Singapore

@NEASingapore · Post #696 · 31.10.2023 г., 01:01

This Halloween, make your carbon footprint less scary! 🍿 Having a spooky movie night? Bring along reusable popcorn containers and cups. 👻 Hitting a few haunted houses? Don't forget to keep hydrated with a reusable bottle. 🍭 And if you’re thinking of hitting the sweet shops, keep a reusable bag handy. #SustainableSG#BYO#BYOB

NEA Singapore

@NEASingapore · Post #669 · 13.10.2023 г., 01:02

Bring your reusable bag when you go shopping! Every action counts when it comes to saving planet Earth, and a little goes a long way when it comes to savings 💰 Show the Earth and your wallet some love! #SayYEStoWasteLess#BYO#BYOB

NEA Singapore

@NEASingapore · Post #648 · 23.09.2023 г., 01:01

Lock screen reminders are the new sticky notes. So set a trendy reminder to bring your own reusable bag before heading out! Let’s save the planet, one bag at a time 🛍#BYO#BYOB#SayYEStoWasteLess

12
ПретходнаСтраница 1 од 2Следна