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

Пребарај: #52pt

当前筛选 #52pt清除筛选
PT风向旗

@Ptfxq · Post #651 · 26.04.2024 г., 01:36

关闭登录的内站登陆方法、各站点的官方群组、频道、机器人等信息。本条消息将及时更新,转发消息请点击👆🏻“PT风向旗“👆🏻查看最新版本 因为 TG 的单条消息的字数限制,故切分消息并按照首字母排序。共三条消息,本条消息为第一条,包含数字开头及 A-G 开头的站点。 #1PTBA 官方频道:https://t.me/on1ptba 官方群组:https://t.me/ptbar_Chat 关门登录:印象中没关过门 #2xfree 官方频道:https://t.me/group_2xfreeOrg 官方群组:https://t.me/vr2xfreechat 关门登录:印象中没关过门 #3wmg#芒果 官方群组:https://t.me/www3wmg #52pt 官方群组:https://t.me/joinchat/NcihYBedvjXZIG5qEKXcpQ #Audiences#观众 官方机器人:https://t.me/Audiences_Official_Bot 官方频道:https://t.me/Audiences_Channel 官方群组:绑定官方机器人加入 关门登录:通过官方机器人获取登录链接 #AGSV#AGSVPT 官方机器人:https://t.me/agsvpt_account_bot 官方群组:https://t.me/AgsvPT_public 关门登录:在网址后加 "/agsvpt" 即可。 #Azusa#梓喵 官方机器人:https://t.me/AzusaServiceBot 官方群组:绑定官方机器人加入 关门登录:通过官方机器人获取登录链接 #BTS#BTSchool#学校 无任何官方频道、群组、机器人。 非官方群组:https://t.me/btschoolclub 关门登录:只能自行备份 #BYR#BYRPT#北邮#北邮人 官方频道:https://t.me/byr_status 关门登录:印象中没关过门 #CarPT#车#车站 什么都没找到 #CHD#CHDBits#彩虹岛#岛 官方群组:https://t.me/+4GL9H6BlQrczNmM5 关门登录:不定期在 QQ 群内发送登录链接。 #Cyanbug#大青虫 官方群组:https://t.me/cyanbug 关门登录:印象中没关过门 #CMCT#SSD#春天 官方机器人:https://t.me/cmct_bot 官方群组:绑定官方机器人加入 官方频道:https://t.me/+xlhFGICfmOZmMGU9 非官方资讯频道:https://t.me/cmc_tnews 官种 RSS 官方频道:https://t.me/ssd_offical_rss 保种区 RSS 官方频道:https://t.me/ssd_guarder_rss 关门登录:通过官方机器人获取登录链接 #Dajiao#打胶 官方群组:https://t.me/DaJiaoPT_Group 关门登录:印象中没关过门 #DiscFan#碟粉 官方 RSS 机器人:https://t.me/DiscFan_RSS_Bot 官方 RSS 频道:https://t.me/DiscFanChannel 官方群组:https://t.me/discfanofficial 关门登录:印象中没关过门 #DICMusic#DIC#GreatPosterWall#GPW 官方机器人:https://t.me/DICGate_Bot 官方频道:https://t.me/DolphinIsComing 官方群组:https://t.me/joinchat/I5xEuEgEQ29Q75zV5WNW4g 账号申诉群:https://t.me/joinchat/LBgGJQs8DKhO7yOHFvH9Jw 关门登录:通过官方机器人获取登录链接 #DragonHD#龙之家 什么都没找到 #FRDS#KEEPFRDS#朋友 官方机器人:https://t.me/NasaRelayBot 官方频道:https://t.me/LetUsKeepFriendsForever 官方群组:https://t.me/+FrUb_hj2hodiNmZl 压制交流群:https://t.me/+V3PD9djMoUr4v38n 关门登录:印象中没关过门 #FreeFarm#自由农场 官方机器人:https://t.me/FFarmBot 官方频道:https://t.me/+TZrLdBvaoA4zMmY9 官方群组:https://t.me/+eItLwsrYPzlmNTQ1 关门登录:通过官方机器人获取登录链接 #FSM 官方机器人:https://t.me/FsmPrivateBot 官方频道:https://t.me/FsmNotify 官方群组:https://t.me/+9vgDC8VFVNlkMjE0 关门登录:印象中没关过门,如果登录不上挂个梯子试试 #GTK#ptgtk 什么都没找到 #GGPT#GameGamePT 官方频道:https://t.me/GGPTcom 官方群组:https://t.me/gamegamept 关门登录:印象中没关过门