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

Резултати

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

Пребарај: #starkex

当前筛选 #starkex清除筛选
Block Daily Dance & Podcast/Space List

@blockdancenews · Post #267 · 17.05.2022 г., 12:19

🔦 Block Daily Dance (5月17日): We are Information Aggregator of BlockChain & Web3.0, running by DAO. 我们是由社区驱动的区块链 & Web3 信息聚合平台。 ✈️Telegram Channel:https://t.me/blockdancenews 📒Notion:https://bit.ly/3LopaUj 🛰 Layer 1 / L2 / 跨鏈: 关于 $ICP的一点浅见 https://twitter.com/BTCdayu/status/1526455520571207680 什么是 #StarkEx#StarkNet 为什么会有 Layer3 https://twitter.com/StarkNet_ZH/status/1526499729588092930 🏙 DAO : SeedClub - 顶级Web3加速器的前世今生 https://chao.mirror.xyz/Y_myw2Pbq-nI7YG0GCNteYeW-zTFz5ilFmC7-bH88qo 🎙 播客/AMA/Talks/活动: https://bit.ly/3HuwSJQ 🔍 链上数据/行情分析: BTC Daily Report - 2022/05/16 https://0xbi.mirror.xyz/R957Onz_a7sR22LSKdDm12CoPKPzwQqx3QGRp5JFlfo ETH凌晨出现交易所大幅度减持 资金逐渐平稳 BTC抛压降低 — 2022.5.17 https://medium.com/@phyrex.ni/eth%E5%87%8C%E6%99%A8%E5%87%BA%E7%8E%B0%E4%BA%A4%E6%98%93%E6%89%80%E5%A4%A7%E5%B9%85%E5%BA%A6%E5%87%8F%E6%8C%81-%E8%B5%84%E9%87%91%E9%80%90%E6%B8%90%E5%B9%B3%E7%A8%B3-btc%E6%8A%9B%E5%8E%8B%E9%99%8D%E4%BD%8E-2022-5-17-f9cb266de4ad 👔 招聘: WEB3求职指南:在哪里发现最全面的招聘信息? https://twitter.com/TechFlowPost/status/1526403587512729601 🧰 综合: Arbitrum Odyssey 计划攻略 https://candydao.notion.site/Arbitrum-Odyssey-17634b06aa084a3a8407d212927e5f16 正反馈的诱惑|预言家周报#171 https://orangexyz.mirror.xyz/Xg6UNuyd2WC-ysnpk1jnXKzkY2rE2HuJd3JTiJKoDD4 Vitalik 谈以太坊发展及去中心化未来待解的十大矛盾 https://foresightnews.pro/article/detail/4134 SBF:UST 很糟糕,但不是区块链版「恶血」 https://foresightnews.pro/article/detail/4131 https://t.me/blockdancenews