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

Пребарај: #accusa

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

@savinobalzano · Post #747 · 17.09.2024 г., 08:34

https://x.com/SavinoBalzano/status/1835959643073372567?t=kDws7UJorXNAG6zZnXt1Zg&s=19 Trovo incredibile che in queste ore qualcuno abbia voglia di parlare di attacco alla #magistratura. Ovviamente a tenere banco è ancora la vicenda di #Salvini e di #OpenArms. Per la verità sarebbe anche la vicenda di #Conte, il quale però ama riabbracciare i suoi ex ministri solo quando questi si chiamano #Speranza o giù di lì. C'è chi sostiene che #MatteoSalvini preferisca parlare della bega giudiziaria, difendendosi peraltro dal processo piuttosto che nel processo, solo per distogliere l'attenzione dell'opinione pubblica dalle difficoltà sue e del #Governo. Che su certe questioni ci siano delle difficoltà mi pare del tutto evidente, ma vorrei modestamente ricordare che non è stato lui ad attualizzare la questione: l'accusa ha chiesto nel processo 6 anni di reclusione. È a fronte di tale richiesta che ha reagito: non mi pare un dettaglio trascurabile. E che si difenda anche dal processo mi pare sacrosanto: "anche", dal momento che nel processo si sta difendendo eccome; "sacrosanto", perché (come ho provato ad argomentare ieri e dunque non ci rientro) questo è un processo politico e rappresenta l'ennesimo gravissimo precedente di incursione della magistratura nel campo della discrezionalità politica. È la magistratura ad attaccare la #politica, non il contrario (quantomeno in questo frangente). C'è un altro aspetto che mi preme chiarire, dal momento che alcuni ieri polemizzavano, ricordandomi come «un #Ministro non sia al di sopra della legge e, dunque, se innocente sarà assolto». A parte il fatto che l'automatismo "innocenza - assoluzione" mi convince poco, vorrei sommessamente ricordare che anche l'azione penale perseguita dall'accusa non deve in alcun modo essere arbitraria o forzata. Vale a dire: non è che siccome hai la possibilità di ottenere l'assoluzione, allora i pubblici ministeri possono accusare chiunque gli passi a tiro senza alcun criterio o, peggio, ricorrendo a elementi che sono squisitamente politici. Parlo in generale: abbiamo la minima idea di cosa possa voler dire subire un procedimento penale? subirlo, magari, nell'assoluta convinzione di essere totalmente innocenti? Ragioniamo per un attimo anche sui danni, materiali e morali, che possono derivare da un procedimento penale ingiusto. Non solo quella del #magistrato giudicante è una funzione delicatissima. Chi #accusa, prima di puntare i dito con ferocia contro un cittadino, dovrebbe probabilmente pensarci cento volte perché il suo è un potere devastante, affidatogli dalla Costituzione perché lo eserciti con le dovute cautele, proprio in considerazione di quanto gravi possono essere le conseguenze di un operato inadeguato. Inadeguatezza (eventuale), peraltro, della quale i magistrati non sono praticamente mai chiamati a rispondere.