Можно ли в 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
Si è impegnato per un modello di società lontanissimo dai miei valori e dai miei ideali.
Adesso, anche in rispetto di milioni di italiani che credevano in lui, l'onore delle armi.
Ricordando però sempre una cosa: tutto ciò che di nefasto Berlusconi non riuscì a realizzare, lo realizzarono gli antiberlusconiani.
La mia al TG Plus di Cusano Italia TV
#Silvio#SilvioBerlusconi#italia#politica#informazione#giornalismo#televisione
https://x.com/SavinoBalzano/status/1896971486960746569?t=PUzqaGBg-FyI77TY45pmlQ&s=19
Ricordare #Berlusconi per sostenere le follie belliciste di questo manicomio chiamato #UE è semplicemente vergognoso.
#SilvioBerlusconi diceva tre anni fa ciò che #Trump dice oggi e #ForzaItalia ne tradisce la memoria ogni singolo giorno.
Il mio sfogo senza freni.
#BattitoriLiberi#RadioCusanoCampus
https://x.com/SavinoBalzano/status/1850081300100567329?t=uy7UZlIEXjC5R__DS3CVKA&s=19
Sono trascorsi più di vent'anni da quel giorno, dal giorno in cui #Berlusconi qualificò i "partner" europei con quell'appellativo consegnato alla storia, divenuto celebre: «turisti della democrazia!».
Ero giovane, avevo sedici anni, ne ridemmo tra amici.
Al di là del merito dello scontro, e lungi da me voler santificare il Cavaliere, devo ammettere che riascoltare oggi quelle parole mi provoca tutt'altre sensazioni.
Aveva perfettamente ragione e non c'era proprio niente da ridere: tutto quanto accaduto dopo, fino ai giorni nostri, dimostra che le cose stavano e stanno esattamente così.
#UE#Europa#SilvioBerlusconi#TuristiDellaDemocrazia
https://x.com/SavinoBalzano/status/1963166563667701781?t=-pBUnENgdQNxwS-SqGJLtA&s=19
Su #EmilioFede si sta scrivendo un po' di tutto.
C'è chi lo vuole "recuperare" e allora ti parla dei suoi trascorsi in Rai, della direzione del TG1.
C'è chi, dall'altro lato, ricorda il suo matrimonio (secondo alcuni lo avrebbe aiutato nella scalata interna al servizio pubblico) e il costo esorbitante delle sue missioni da inviato.
Ovviamente, non può mancare l'avventura al TG4: se ne sottolinea la totale dedizione alla causa berlusconiana.
Ebbene, io voglio dire solo questo: rispetto a tanti giornalisti di oggi e a tanti giornali di oggi, anche la pagina di Mediaset scritta da #Fede sarebbe oro colato.
Non rappresenta di certo il mio modello, ma è innegabile che Emilio Fede fosse letteralmente innamorato di #SilvioBerlusconi: la sua era cieca lealtà, letteralmente fede (appunto). Gli è stato devoto anche dopo il divorzio con la televisione: spesso piangeva pensando a quell'amicizia e non dimenticherò mai le sue parole in auto, mentre provava a rivolgere l'ultimo saluto all'amico, chiedendogli di portarlo in cielo con lui. Emilio Fede desiderava seguire Silvio #Berlusconi persino nell'aldilà.
Ora, questo potrà apparire eccessivo, a tratti grottesco, va bene: ma era sincero, trasparente. La sua assoluta partigianeria, la sua totale faziosità erano dichiarate. La sua militanza era ostentata perché ne andava fiero. Piaccia oppure no. Non si sentiva schiavo di Berlusconi: si riteneva un suo discepolo, un suo apostolo. Questa era la sua visione. Ed erano fatti suoi: nessuno era costretto ad ascoltarlo.
Oggi, viceversa, assistiamo a uno spettacolo decisamente meno edificante: più infimo, carsico, sibillino, meschino. Siamo circondati da patetici servi che ostentano un'inesistente indipendenza e una falsissima onestà intellettuale: mercenari ipocriti, faziosi per servilismo puro o per solo denaro. Anche Fede era ben pagato, ci mancherebbe, ma la sua dimensione fideistica non può essere dissimulata. Ti raccontava quella che secondo lui era la verità, senza nascondere il suo punto di vista: non pretendeva di tappare la bocca agli altri col manganello del fact-checking.
Poi qualcuno rimescolerà nelle vicende personali dell'uomo: gioco d'azzardo e altre più recenti e note. Questioni sue. Mi pare un tristissimo tentativo di nascondersi dietro un dito: lui era un servitore, sissignore, ma questi altri sono proprio servi.
https://x.com/SavinoBalzano/status/1896865457237287286?t=hZJjIbr9ijnQoQNWxDJXXw&s=19
A me #Tajani me fa morì: «la difesa europea era il grande sogno di #SilvioBerlusconi».
Voi ve lo immaginate il Silvione nazionale sognante, ad occhi aperti mirando il firmamento, pregustare la creazione di un esercito comune europeo?
Io francamente ricordo le dichiarazioni di Berlusconi del settembre 2022, quando disse: «#Putin è stato spinto a invadere l’Ucraina per sostituire #Zelensky con un governo di persone perbene».
Ancora, a febbraio 2023 disse: «Io a parlare con Zelensky, se fossi stato il Presidente del Consiglio, non ci sarei mai andato, perché stiamo assistendo alla devastazione del suo paese e alla strage dei suoi soldati e dei suoi civili. Bastava che cessasse di attaccare le due repubbliche autonome del #Donbass e questo non sarebbe accaduto. Quindi giudico, molto, molto negativamente il comportamento di questo signore».
Disse anche: «Per arrivare alla pace, il signor presidente americano dovrebbe prendersi Zelensky e dirgli: "È a tua disposizione dopo la fine della guerra un piano Marshall per ricostruire l'Ucraina (...) anche perché noi da domani non vi daremo più dollari e non ti daremo più armi"».
Berlusconi ha anticipato #Trump di tre anni, praticamente.
Quale fu la reazione di Totò Tajani in quella circostanza? Meravigliosa: «#ForzaItalia è da sempre schierata a favore dell'indipendenza dell'#Ucraina, dalla parte dell'#Europa, della #Nato e dell'Occidente».
Se dovessi fare una previsione, potrei sbagliare, la leadership di #AntonioTajani ha vita breve: se davvero un nuovo Berlusconi dovesse decidere di scendere in campo, lo metterebbero da parte in pochi secondi. Dal mio punto di vista, fortunatamente.
Quindi indugiare sulle sue parole ha senso fino a un certo punto. Tuttavia, trovo davvero stucchevoli queste selettive citazioni post mortem del Cavaliere: sulla #guerra in Ucraina, Silvio #Berlusconi è certamente stato il politico italiano più lucido, quello che ci aveva visto giusto sin dal primo momento, e anche il più coraggioso (altro che bacetti sulla testa...). E proprio quando aveva tutta la ragione dalla sua parte - è la storia a dirlo - venne trattato come un anziano svalvolante.
E allora, piantatela con questa memoria a fasi alterne e di comodo: Belusconi lo avete sconfessato proprio alla fine, probabilmente perché un pezzo della famiglia ve lo ha consentito (altrimenti tutti in ginocchio!). Citarlo adesso, per sostenere la strategia della più idiota di tutte le Unioni Europee viste all'opera, è un insulto che Silvio non merita proprio.