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

Пребарај: #nomegaembassy

当前筛选 #nomegaembassy清除筛选
Hong Kong Democracy Movement

@hkdmovement · Post #7970 · 20.04.2025 г., 23:11

🚨5月3日倫敦鑄幣廠大遊行 🚨May 3rd Anti-Mega Chinese embassy March Date: 03-05-2025 / 2-5pm Location: Royal Mint Court Format: 遊行& 集會 March & Assembly 齊心協力,見證歷史! 誠邀你再臨倫敦,一同齊集鑄幣廠,以遊行形式抗議反對興建中共超級大使館! 早前傳媒估計政府可能五月作出決定,所以我哋而家更要把握機會向警方施壓,表明現時對附近的風險評估絕不成立,必須重申對倫敦鑄幣廠超級大使館嘅立場。 #NoMegaEmbassy#LondonProtest#NoSuperEmbassy#超級大使館#UK#倫敦#London#英國#鑄幣廠#中國超級大使館#舊皇家鑄幣廠#royalmintcourt

Hong Kong Democracy Movement

@hkdmovement · Post #7969 · 20.04.2025 г., 23:11

曼城街頭流水式集會 Full-Day Rally——Against to unacceptable China Mega Embassy 🗓️ 24 April (Thu) ⏱️ 9am — 4pm 📍 38 Warrington St, Ashton-under-Lyne OL6 7JS (Outside McDonald’s) [無口號和平行動] 過嚟至少拎起塊紙牌show比途人睇有咩危機殺緊過嚟💪🏻 人數及輪替方式:每小時至少20人,無人輪替就一齊企到尾 [如有需要可自備口罩] Source: Manchester Stands With Hong Kong #Manchester#UK#NoMegaEmbassy#NoSuperEmbassy#超級大使館#倫敦#London#英國#鑄幣廠#中國超級大使館#舊皇家鑄幣廠#royalmintcourt