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

Резултати

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

Пребарај: #houseofbigwins

当前筛选 #houseofbigwins清除筛选

😀 😀 😀 😀 😀 😀 😀 😙 😍 😗 😋 😝 🙃 😜 🤨 😜 💥 爆奖晒单 | ID 99***67 豪赢 99,875U! 运气爆棚还是技术在线?不重要——赢就完事了! 一转定乾坤,差点破十万大关,羡慕到想换号! 🎉 你也有可能成为下一个大奖得主! 🎮 马上开局 👉magic88.game #Magic88#爆奖晒单#高额奖励 #赢家风采#HouseOfBigWins #大奖时刻#下一位就是你#幸运玩家 ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ 🌟官网入口:✔️magic88.game 👈 🎉快点!晚一步,大奖就没了! 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🌐 Telegram 🌐Discord 🌐Facebook🌐Twitter X 🌐Instagram🌐Tiktok ✉️Luffa🔐SafeW

😀 😀 😀 😀 😀 😀 😀 😙 😍 😗 😋 😝 🙃 😜 🤨 😜 💥 爆奖晒单 | ID 99***67 豪赢 99,875U! 运气爆棚还是技术在线?不重要——赢就完事了! 一转定乾坤,差点破十万大关,羡慕到想换号! 🎉 你也有可能成为下一个大奖得主! 🎮 马上开局 👉magic88.game #Magic88#爆奖晒单#高额奖励 #赢家风采#HouseOfBigWins #大奖时刻#下一位就是你#幸运玩家 ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ 🌟官网入口:✔️magic88.game 👈 🎉快点!晚一步,大奖就没了! 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🌐 Telegram 🌐Discord 🌐Facebook🌐Twitter X 🌐Instagram🌐Tiktok ✉️Luffa🔐SafeW

😀 😀 😀 😀 😀 😀 😀 😙 😍 😗 😋 😝 🙃 😜 🤨 😜 💥 爆奖晒单 | ID 99***67 豪赢 99,875U! 运气爆棚还是技术在线?不重要——赢就完事了! 一转定乾坤,差点破十万大关,羡慕到想换号! 🎉 你也有可能成为下一个大奖得主! 🎮 马上开局 👉magic88.game #Magic88#爆奖晒单#高额奖励 #赢家风采#HouseOfBigWins #大奖时刻#下一位就是你#幸运玩家 ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ 🌟官网入口:✔️magic88.game 👈 🎉快点!晚一步,大奖就没了! 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🌐 Telegram 🌐Discord 🌐Facebook🌐Twitter X 🌐Instagram🌐Tiktok ✉️Luffa🔐SafeW

😀 😀 😀 😀 😀 😀 😀 😙 😍 😗 😋 😝 🙃 😜 🤨 😜 ⚽ 7月21日焦点战预告|俄超赛场再起硝烟! Gazovik Orenburg 🆚 CSKA Moscow 开赛时间:3:30 PM 莫斯科中央陆军来袭,奥伦堡主场能否力抗强敌? 赔率暗流涌动,战局风云莫测,今晚的对决不容错过! 📍 快来 Magic88 体育专区锁定比赛,全新赔率组合、进球时刻竞猜、首粒进球投注全面开放! 🎮 点燃竞猜热情 👉magic88.game #Magic88#俄超联赛#奥伦堡#莫斯科中央陆军 #今日赛事#足球竞猜#实时赔率#足球推荐 #Magic88Sports#HouseOfBigWins ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ 🌟官网入口:✔️magic88.game 👈 🎉快点!晚一步,大奖就没了! 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🌐 Telegram 🌐Discord 🌐Facebook🌐Twitter X 🌐Instagram🌐Tiktok ✉️Luffa🔐SafeW

😀 😀 😀 😀 😀 😀 😀 😱 最后一转出野牌!差点把手机摔出去! 本来想“随便玩一下” 结果最后一秒💥野牌登场!倍率爆拉! 情绪值📈📈📈 心跳值💯 胜率拉满! 你上一次压线翻盘是在什么时候? 🎰 留下你的“最后一转”神时刻 👇 #Magic88#最后一转奇迹#爆分警告 #情绪价值拉满#野牌来了#老虎机Meme #SpinItWinIt#HouseOfBigWins#Magic88玩家日常 ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ 🌟官网入口:✔️magic88.game 👈 🎉快点!晚一步,大奖就没了! 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🌐 Telegram 🌐Discord 🌐Facebook🌐Twitter X 🌐Instagram🌐Tiktok ✉️Luffa🔐SafeW

😀 😀 😀 😀 😀 😀 😀 😙 😍 😗 😋 😝 🙃 😜 🤨 😜 🎩Magic88 魔术师娱乐城|哈希智勇大闯关开启! 你是否拥有闯关的勇气与智慧? 在区块链构建的魔术世界中,一步步解锁命运,赢取高达 588 美金奖励! 🧠活动亮点一览: 🔗链上任务机制 — 完全去中心化,数据公开透明,绝无黑箱 🎯智力 + 运气双考验 — 每一道关卡都可能隐藏爆奖机会 🚀最高奖励 588 USDT — 勇者出发,即刻领取闯关回馈 ✨想挑战自己、赢取高额奖励?现在就加入魔术师的世界吧! 🎮立即参与 👉magic88.game #Magic88#哈希闯关#魔术师娱乐城 #链上挑战#588美金奖励#GameFi #智能任务#勇者行动#HouseOfBigWins #公平游戏#挑战奖励#Magic88活动推荐 ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ 🌟官网入口:✔️magic88.game 👈 🎉快点!晚一步,大奖就没了! 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🌐 Telegram 🌐Discord 🌐Facebook🌐Twitter X 🌐Instagram🌐Tiktok ✉️Luffa🔐SafeW

😀 😀 😀 😀 😀 😀 😀 😙 😍 😗 😋 😝 🙃 😜 🤨 😜 俄超激战来袭|锁定 7月20日焦点对决! 绿茵之夜,即将点燃 🔥 三场劲爆对决,谁能笑傲战场? 锁定 Magic88,提前预测你的胜者! 📅 7月20日 赛程速览: 🌙 8:30 PM|Nizhny Novgorod 🆚 Krasnodar 🌙 11:00 PM|Zenit St. Petersburg 🆚 Rostov 🌙 1:30 AM|Akhmat Grozny 🆚 Rubin Kazan 🏟️ 即刻进入 Magic88 体育专区,支持你心中的冠军球队 🎯 实时赔率更新、高倍组合投注、爆单就在今夜! 🎮 前往 👉magic88.game #Magic88#俄超联赛#足球竞猜#今日赛程 #俄罗斯足球#Zenit#Krasnodar#RubinKazan #爆单夜#实时赔率#竞猜推荐#Magic88Sports#HouseOfBigWins ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ ⬇️ 🌟官网入口:✔️magic88.game 👈 🎉快点!晚一步,大奖就没了! 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🤓 🌐 Telegram 🌐Discord 🌐Facebook🌐Twitter X 🌐Instagram🌐Tiktok ✉️Luffa🔐SafeW