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

Пребарај: #shaef

当前筛选 #shaef清除筛选
От Альп до Рейна

@begleita · Post #336 · 30.03.2020 г., 11:56

Продолжим отклоняться от объявленной темы. Как, возможно, кто-то уже слышал, третьего дня появилось известие о смерти министра финансов Гессена Томаса Шефера. Как изволили объяснить его коллеги со страниц немецких СМИ, это определенно был суицид. Человек много работал, подготавливая финансовые меры для спасения гессенской экономики во время пандемии коронавируса, надорвался и покончил с собой. «Расходимся, тут не на что смотреть». Альтернативной публике предлагается альтернативная версия, придуманная скучающими на карантине посетителями Форчана. Я ее, честно говоря, не понял, но ознакомиться с ней мы можете в ближайшем Твиттере по хештегам #QAnon и #SHAEF (схожесть последнего тега с фамилией покойного министра особенно взволновала изнывающих от безделья анонов с имиджборд). Там что-то про тайное вторжение США в Европу, освобождение европейцев от гнета Ротшильдов и Тунбергов и тому подобное. То есть, Шефера убил Джей Си Дентон и, скрипя потертым плащом, скрылся на черном вертолете, оставив мерцающий химтрейл до самой границы земного диска. А где находится американское военное командование в Европе? В столице Гессена Висбадене. Дело раскрыто! Посмеявшись над неуклюжими попытками конспирологов по ту сторону Атлантики объяснить смерть Шефера, давайте встанем на их место и, шутки ради, тоже подумаем – что здесь может быть не так? Согласно официальным сообщениям, утром в субботу полиция получила сообщение о не подающем признаков жизни мужчине на железнодорожных путях под Хоххаймом (это возле Висбадена). Позже в погибшем опознали гессенского министра. После чего в прессе объявили, что это был суицид, и даже рассказали о предсмертном письме (правда, раскрывать его содержание власти предусмотрительно не стали). Быть министром финансов Гессена дело непростое, кто же спорит. Воду из Майна можно использовать вместо утреннего кофе – столько кокаина туда сливают франкфуртские банкиры. Так что, конечно, почему бы и нет: подписал человек указ о поддержке пострадавшего от COVID бизнеса, выделил два миллиарда евро – и бросился под поезд. А нет, не бросился. Железнодорожные пути Шефер выбрал с умом – его нашли на рельсах, по которым ходят европейские «атомные паровозики»™, ICE. 300 км/ч и похороны в закрытом гробу. Вот только никакого поезда-то не было. Учитывая, что причину смерти сообщать тоже не торопятся, можно пофантазировать и предположить, что дело было так: - Шефера убили и уложили на рельсы, ожидая, что ICE сделает свое дело. Бросаться под поезд – вполне типичный для Германии способ самоубийства. Вот только люди, заметавшие таким образом следы, плохо знали немецкие реалии. «Поезда ходят строго по расписанию» – это не про Германию; те же ICE даже в мирное время опаздывают или вовсе отменяются. А сейчас большую часть рейсов вообще сняли. Так что неудивительно, что первым Шефера нашел какой-то малодушный нарушитель карантина, а не скоростной экспресс. В самом деле, зачем решившему покончить с собой министру, добираться до окраины мелкого города и спускаться на железнодорожные пути, чтобы в итоге умереть не от поезда? Рядом же Франкфурт, столько небоскребов на выбор! (еще отчего-то вспоминается биография Роммеля. Человек много работал, подготавливая Атлантический вал для отражения высадки союзных войск. Как известно, надорвался и покончил с собой)

Hashtags