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

Пребарај: #slexcontest

当前筛选 #slexcontest清除筛选
SLEX NEWS

@slex_io · Post #85 · 04.09.2023 г., 13:49

🔒Final of Zealy.io: New Chapter Begins🤝 🌐We're thrilled to inform you that the official launch of the SLEX exchange has successfully taken place, and it's time to say goodbye to the Zealy.io testnet🌟 ❤️We're grateful to all the participants who joined the testnet and diligently completed various activities, but we've identified a significant number of multi-accounts🤖 🗓We take fairness and integrity seriously, so we'll announce the results of the testnet's user activities after a thorough review. 🤝Thank you for being a part of the SLEX community and your unwavering support. Stay tuned for more SLEX updates and developments! #SLEXlaunch#testnetzealy#SLEXcontest#SLEX Email | Telegram | Reddit | Facebook | Instagram | Medium | Linkedin | Twitter

SLEX NEWS

@slex_io · Post #132 · 27.11.2023 г., 11:19

🔒SLEX Rewards Form Now Closed - Thank You for Participating! 🌟 Dear SLEX Community, 🎉We're thrilled to announce that our SLEX rewards form is closed! Thank you to everyone who participated and shared in this exciting opportunity. You will receive your SLEX coins just after the official listing🚀 🎁Stay tuned for more updates and prepare to trade SLEX coins on SLEX Exchange! #SLEX#SLEXExchange#SLEXRewards#SLEXContest#SLEXCoin Telegram | Reddit | Facebook | Instagram | Medium | Linkedin | Twitter

SLEX NEWS

@slex_io · Post #107 · 06.10.2023 г., 17:48

☄️Grab up to $100 for Registration on SLEX 🔥The SLEX is excited to announce our exciting deal, where the first 500,000 users will have the opportunity to earn up to $100 in bonuses just by making simple onboarding actions on our Centralized Exchange! 🌈Dive into this link and find out this simple Steps & Get your 100$ Reward: 👉slex.io/onboarding-campaign👈 Hurry up, this is a Limited-Time Deal 😉 Join SLEX CEX and Invite your Friends to join us & get up to a $100 reward! 🤝Join SLEX Official Twitter Channel for being in touch with upcoming deals & offers for SLEX community members! #SLEXOnboarding#CryptoBonus#SLEXExchange#SLEXContest#WelcomeBonus Email | Telegram | Reddit | Facebook | Instagram | Medium | Linkedin | Twitter