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

Пребарај: #che

当前筛选 #che清除筛选
Savino Balzano

@savinobalzano · Post #936 · 17.03.2025 г., 10:06

https://x.com/SavinoBalzano/status/1901575776895463908?t=LPK8gKwEasKGDGdOIsRWJQ&s=19 E come #Enrico E come #Elly Quella di #Berlinguer è una delle figure più meschinamente strumentalizzate dalla #sinistrucola nel Paese. Mai fatto santini in vita mia: Berlinguer ha certamente commesso i suoi errori. Ricordo quello scontro memorabile tra lui e #Bobbio. Il primo, secondo alcuni frainteso (ad esempio secondo @lucatelese), immaginava l'austerità come forma di lotta di classe. Uno strumento attraverso il quale redistribuire ricchezza. Il secondo che gli ricordava come l'austerità non fosse una scelta per il poveraccio, ma una condizione di vita ineludibile. Però Berlinguer resta Berlinguer: un gigante rispetto ai figuri che popolano (o infestano) il campo santo della sinistrucola. Che memoria tradita quella di Enrico, da eredi che avrebbe senz'altro diseredato: è diventato come il #Che, un personaggio per fare le magliette. E allora stampano il suo sguardo sulle tessere di un Partito che Berlinguer avrebbe combattuto con tutte le sue forze (che assordante il silenzio della sua famiglia!), registi improvvisati ne girano film su film. Ecco, sembrerà un po' forte, ma Enrico è diventato un po' come Benito, per certi aspetti: un personaggio per far marketing e soldi a palate. Sta roba io l'ho vissuta e rivissuta da ragazzino. L'ho raccontato molte volte, sono di Cerignola, la città di #GiuseppeDiVittorio: in occasione di ogni santa campagna elettorale per le amministrative, dal palco dinanzi alla villa comunale, personaggetti picoli piccoli facevano a chi urlava più forte il suo nome per strappare qualche voto in più: «peppino! peppino! peppino nostro!». E si percuotevano il petto. In un vecchio scantinato era accatastato a pezzi uno storico murale che rappresentava il Sindacalista (con la S maiuscola, oggi spesso inutilizzabile). Ogni volta che si votava, i sinistrucoli cerignolani si sbracciavano istericamente: «lo riporteremo alla luce! lo restituiremo alla città! tornerà al suo antico splendore!». Non hanno mai fatto niente. Alla fine venne riesumato, riassemblato, restituito alla cittadinanza da un ottimo Sindaco ex missino. Questi sono gli eredi di Berlinguer e di #DiVittorio oggi in Italia: affaristi, affabulatori, ciarlatani senza arte né parte. Gente alla quale, mi ci giocherei un braccio, Enrico e Peppino non avrebbero mai rivolto nemmeno un cenno di saluto.