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

Резултати

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

Пребарај: #cooking

当前筛选 #cooking清除筛选
ALBA GROUP

@albarestgroup · Post #3526 · 06.10.2025 г., 07:25

Блюдо дня от ресторана Пафос — утиное бедро #cooking Забронировать

Hashtags

A quick suggestion for all the survivalists out there: get a Dutch Oven! These are cast iron pots, which can be placed on a ceramic hob, on induction fields as well as on a camp fire and burning coal. Instead of getting some aluminium or enamel pot, get your hands on one of those! They can be used for all kinds of meals, including soup, meat and even bread baking. They ship in various sizes, so make sure to get one which suits your needs. #survival#cooking @EuropeanTribalism

独立人指南

@Dulirenorg · Post #468 · 03.08.2019 г., 09:06

#cooking#fire🔥 ✏️ ⓵ 自工业革命以后,尽管科技长足发展,但人类烹饪的过程依旧惊人地低效。 ⓶ 改良的生物质燃炉可以达到两倍,甚至三倍于现代厨房新式炉灶的热效率。 ⓷ 究其本质,任何形式的电热炉不过是某种热力学的隔热层而已。 ⓸ 新式炉灶与管理得当的石堆土灶,其二者的污染水平等量齐观。 https://telegra.ph/thermal-efficiency-cooking-stoves-08-03

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