Можно ли в 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
https://x.com/SavinoBalzano/status/1944736863417147738?t=iz9bmNfkbYL-EGrXy4nDtw&s=19
Abbiamo riflettuto sul nervosismo che si comincia a percepire dalle parti di Fratelli d’Italia.
Ne abbiamo parlato con Padellaro del Fatto Quotidiano.
Il tema è reale, anche perché se ti presenti alle elezioni raccontandoti come patriota intransigente, una che non prende ordini da nessuno, che batte i pugni sul tavolo e mette in riga tutti — e poi ti ritrovi a battere solo i tacchi in ossequioso rispetto degli ordini che arrivano da Bruxelles — qualcuno, tra quelli che ti hanno votato, potrebbe anche iniziare a innervosirsi. E infatti qualche sondaggio certifica i primi scricchiolii.
Giorgia farebbe bene a riprendersi e a mantenere almeno un decimo delle promesse fatte. Le cose migliorerebbero senz’altro. Ad oggi, però, non si è visto nulla.
#BattitoriLiberi, dal lunedì al venerdì, dalle 17 su #RadioCusanoCampus.
https://x.com/SavinoBalzano/status/1940464008840335560?t=9ufeA7_AFsJZF5iuOnUaug&s=19
La vita sa essere davvero ingrata, ingenerosa, talvolta spietata: oggi mi tocca commentare l’uscita di uno dei giornalisti più scomodi per il regime al potere, Cancellato.
Secondo la sua lettura dei fatti, il caldo che ci tormenta sarebbe colpa del decreto sicurezza del governo. Pensate: a causa di Giorgia Meloni, si sarebbe abbassata persino la temperatura di fusione di ferro e acciaio. Ecco spiegato l’accaduto all’insegna di Generali a Milano.
Se anche in privato si lascia andare a esternazioni del genere, non stupisce che ci sia chi voglia spiarlo.
Non te la prendere, Direttò, si scherza.
#BattitoriLiberi, dal lunedì al venerdì, dalle 17 su #RadioCusanoCampus.
Se volete, qui trovate gran parte dell'intervista che ieri Marco Travaglio mi ha rilasciato.
#BattitoriLiberi#RadioCusanoCampus
https://www.ilfattoquotidiano.it/2025/06/21/travaglio-iran-israele-mattarella/8034561/
https://x.com/SavinoBalzano/status/1935392005485457733?t=MawobnWjc0_6v0mSKuJYnQ&s=19
Il nostro eccellentissimo Ministro degli Esteri, Antonio Tajani, continua a ribadire il diritto di Israele a difendersi.
APPELLO ALLE OPPOSIZIONI:
Rivolgo un appello pubblico — e potete solo immaginare quanto mi costi farlo — a Schlein, Conte, Bonelli e Fratoianni: vi prego, smettete immediatamente di chiedere che la Farnesina si esprima sull’attuale situazione.
Se davvero amate l’Italia, vi scongiuro in ginocchio: non invitate più Tajani a parlare o a riferire.
Mettetevi una mano sulla coscienza!
#BattitoriLiberi#RadioCusanoCampus
https://x.com/SavinoBalzano/status/1933428481611686399?t=4SCcqeZtB8ugSYapLSen8w&s=19
C’è chi ritiene che, se la gente la pensa in un certo modo, sia perché non capisce, perché è manipolata, o perché è analfabeta funzionale.
Chi usa questi argomenti, ovviamente, è tutto fuorché democratico: si professa tale, ma con arroganza si crede superiore agli altri.
Ebbene, questo non lo accetterò mai. Da oggi sarò ancora più intransigente su questo punto. Promesso.
Pubblico il video integrale di quanto accaduto ieri, affinché chiunque possa farsi un’idea autentica e – soprattutto – possa comprendere chi davvero non tollera il punto di vista altrui.
Ritenta, magari sarai più fortunato. Ma temo di no.
#BattitoriLiberi#RadioCusanoCampus
https://x.com/SavinoBalzano/status/1923083810884788582?t=A78GZgBc634XXuxcTvmjQA&s=19
Quante altre balle deve raccontare Mario Draghi prima che smettano di trattarlo come il migliore degli italiani?
Eppure continua a spararle, una dopo l'altra!
#BattitoriLiberi#RadioCusanoCampus
https://x.com/SavinoBalzano/status/1917634329384997111?t=7517Kc6-mEkvX4PR4M9KbQ&s=19
ERO A UN PASSO DAL LASCIARE LO STUDIO.
Uno dei confronti più difficili da quando conduco questa trasmissione.
Tal Claudio Locatelli sostiene che non è vero che la Russia stia vincendo la guerra: arriva persino a raccontarci di ristoranti che aprono al fronte.
Ci siamo addirittura sentiti dire che le trattative diplomatiche per porre fine al conflitto sarebbero saltate per colpa di Trump. Siamo a posto.
Io, sinceramente, resto senza parole: descrivere il fronte come una situazione di equilibrio serve solo a gonfiare l’opinione pubblica occidentale a favore del riarmo e del sostegno militare a Kiev. Pura propaganda.
E come se non bastasse, ci viene pure a dire che Lucio Caracciolo è in malafede. Andiamo bene.
#BattitoriLiberi#RadioCusanoCampus
https://x.com/SavinoBalzano/status/1917226371291521424?t=zQXSdieKk2b0CBrfcH4dzw&s=19
Vorrei esprimere la mia piena solidarietà alla celebre panettiera di Ascoli, recentemente vittima della tirannide del regime neofascista italiano.
Pensate: alcune squadracce si sono presentate presso il suo esercizio commerciale, pretendendo che mostrasse i documenti di identità. Non riesco a scriverlo senza piangere.
La poverina ha già ricevuto diversi inviti a comparire su La7. È dura, la vita dell’antifascista dem nel 2025.
Quando si dice: "portare a casa la pagnotta".
#BattitoriLiberi#RadioCusanoCampus
https://x.com/SavinoBalzano/status/1912759312910262589?t=Eo7shYKbHldoe-JaPNP-9Q&s=19
Contate con me e sforzatevi di non ridere: putiniano sì, putiniano no, putiniano sì, putiniano no...
Tale Mirella Serri sostiene che l’Italia pulluli di putiniani. E, attenzione, non lo dice basandosi su sensazioni personali o chiacchiere da bar: NO! Lei ha i numeri, le statistiche. In pratica, i putiniani sarebbero contati, catalogati, inseriti in apposite tabelle. Ammesso che sia vero – e, diciamolo, suona piuttosto ridicolo – sarei curioso di scoprire quali procedure siano state usate per questa "rilevazione". Magari verificandone pure la conformità costituzionale, sai com’è.
La Serri pensa che i putiniani abbocchino alle fake news sparse per tutto il Paese. Non ho capito bene cosa intenda: forse c’è un drone russo che sgancia volantini di propaganda dal cielo?
A proposito, m’è tornato in mente! Vi ricordate quel drone “pericolosissimo” sul Lago Maggiore di due settimane fa? I telegiornali ci hanno ricamato sopra, ma poi puff, sparito nel nulla. Strano, eh?
D’altronde, erano i russi a dire che gli ucraini combattevano con le pale, riciclando chip delle lavatrici, ridotti alla canna del gas, con le nonnine armate di scope e mattarelli. Giusto, Mirè?
#BattitoriLiberi#RadioCusanoCampus
https://x.com/SavinoBalzano/status/1907671848734609503?t=1_OPK9-vMjQURVtdS0Xyyw&s=19
Una suora di carità spiega come il riarmo possa rappresentare un'opportunità per i giovani.
Quell'altro, a novant'anni, ci racconta che il riarmo è ispirato dal Vangelo.
La nuova catechesi: guerra e morte.
Io direi che i giovani sono perfettamente in grado di decidere da soli, senza farsi trascinare al fronte da chi la propria vita l’ha in gran parte già vissuta.
#BattitoriLiberi#RadioCusanoCampus
https://x.com/SavinoBalzano/status/1938989670588711336?t=cpbYcgAwpjP_rHNTO7kD0g&s=19
Mi hanno colpito le parole di Elena Basile, una delle poche voci libere rimaste nel dibattito pubblico del nostro Paese.
La ringrazio per aver scelto noi per il suo appello: nessuno si senta al sicuro. Se a vincere saranno le élite europee della #guerra, con i loro servi italiani, nessuno sarà escluso dalle conseguenze.
Non possiamo restare immobili, fermi a guardare. Dobbiamo proteggere i nostri figli e difendere il loro futuro.
Chi ci minaccia non è fuori dai confini nazionali, non è a est: è tutto intorno a noi.
#BattitoriLiberi, dal lunedì al venerdì, dalle 17 su #RadioCusanoCampus.