Можно ли в 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
Indagato per falso e finanziamento illecito l’ex ministro ed attuale presidente del CNEL, Renato #Brunetta: avrebbe venduto le sue quote di una società di prodotti sanitari al suo vice capo di gabinetto al ministero della Pubblica amministrazione. L’ipotesi degli investigatori è che Brunetta abbia modificato alcuni documenti per nascondere il passaggio di 60.000 euro, che servivano per cedere le quote
@UltimoraPolitics
#Italia Renato #Brunetta (#FI|EPP): "Non votando la fiducia a Draghi Forza Italia ha tradito la sua storia e i suoi valori. Non sono io che lascio, è FI che lascia se stessa." @UltimoraPolitics
#Italia
Renato #Brunetta (#FI|EPP): "Non votando la fiducia a Draghi Forza Italia ha tradito la sua storia e i suoi valori. Non sono io che lascio, è FI che lascia se stessa."
@UltimoraPolitics
#Italia#Elezioni2022
Renato #Brunetta annuncia che non si ricandida per le politiche: "Resto dove sono, non vado da nessuna parte. Rimarrò fino alla fine a onorare con orgoglio il mio impegno da ministro del Governo Draghi, nel perimetro degli affari correnti. Ho dato tanto alla politica e tanto ho ricevuto. Nessun rammarico e nessun rimpianto, semmai un po' di dolore"
@UltimoraPolitics
#Italia
In caso di conferma delle dimissioni di Mario #Draghi, il ministro #Brunetta (#FI|EPP) guiderà il paese fino alle prossime elezioni.
@UltimoraPolitics
#Italia
❗️L'Espresso - Mariastella #Gelmini sarebbe entrata in #Azione, nelle prossime ore l'annuncio. Anche #Brunetta si muove nella stessa direzione.
@UltimoraPolitics
La moglie di #Brunetta, Tommasa Ottaviani Giovannoni, è stata condannata a versare 20.000€ a Matteo #Renzi dal tribunale di Firenze: nel 2016 postò con uno pseudonimo la foto di #Delrio accanto all'ex premier e ai ministri #Lotti e #Boschi e scrisse: "Ho le foto di Delrio coi mafiosi".
@UltimoraPolitics
https://x.com/SavinoBalzano/status/1823033087023878315?t=_YbyQYq1eRqdqs1kVbEY8Q&s=19
Giuseppe Conte torna alla carica con la nenia lacrimosa sul #SalarioMinimoLegale.
I salari italiani perdono potere d'acquisto, siamo fanalino d'#Europa, e il #Governo è insensibile al lamento di dolore di tanti italiani.
Certo, moltissimi nei commenti gli domandano come mai una legge del genere, assai semplice nella sua struttura rispetto ad altri provvedimenti, non l'abbia varata lui quando era a Palazzo Chigi. I salari andavano bene? Direi di no. Quindi era insensibile anche lui quando guidava l'esecutivo?
Cita #Brunetta, per infangare la posizione del Governo, e ha gioco facile: in effetti vederlo a capo del Consiglio Nazionale dell'Economia e del Lavoro mi fa sanguinare gli occhi (parliamo di uno che aggrediva verbalmente un contestatore solo in quanto lavoratore dipendente). Per non ricordare tanti e tanti altri aneddoti che ne tracciano una figura davvero sgradevole, da ogni punto di vista.
Però è una furbata: è come quando dicono che certa roba non va bene perché era nel programma di #LicioGelli. È un espediente retorico vuoto, privo di argomentazioni.
Il #SalarioMinimo è una misura che inciderebbe su una parte assai marginale di retribuzioni (rischiando, da sola, di fare più danni che altro): a perdere potere d'acquisto, invece (come lo stesso #Conte peraltro scrive senza rendersi conto della contraddizione), sono tutte le retribuzioni, di quasi ogni settore, la stragrande maggioranza delle quali è ben oltre la soglia che si vorrebbe introdurre.
Il problema è sistemico, strutturale, frutto di scelte sbagliate compiute in decenni e decenni: davvero pensa che un disastro del genere lo si metta a posto con una leggina sul salario minimo? Il salario minimo fissato per legge non interviene sulle ragioni profondissime del problema. Somministrare la morfina a uno che si è rotto il femore produce giovamento, ma lo aiuterà a riprendere a correre? E un tempo le nostre retribuzioni correvano eccome e, vi svelo un segreto, non c'era una legge sul salario minimo.
È risibile, fumo negli occhi, non si interverrebbe minimamente sulle cause reali, strutturali, che hanno comportato il disastro: in primis politiche economiche regressive, austere, imposte dalle tecnocrazie eurounitarie, che hanno fatto esplodere la disoccupazione. La disoccupazione ha comportato una perdita di potere contrattuale della comunità del lavoro, dell'offerta di lavoro nel mercato: con conseguente perdita di valore del prodotto, il lavoro, e di potere contrattuale dei produttori, i lavoratori.
Ha inciso anche sulla capacità di presidiare i diritti acquisiti, difatti è esplosa la precarietà. Essa ha reso ricattabili le persone e reciso il rapporto tra lavoro e democrazia di cui all'art. 1 della Costituzione, tarpando le ali alle dinamiche rivendicative, anche salariali.
Durante l'esperienza di governo giallo-verde, pare che lo avesse chiaro in testa: varò il #DecretoDignità, un ottimo inizio per invertire la rotta e sistemare tutti i danni che il suo principale alleato, il #PD, ha arrecato al mondo del lavoro, sostenendo le follie dell'#UE e precarizzando come non ci fosse un domani (nel silenzio o quasi della #CGIL, che al tempo non voleva disturbare il partito di governo, col quale peraltro la Segreraria Generale si sarebbe candidata per approdare in Parlamento. Le coincidenze di tale Camusso, che però restano interessanti perché dubito che vedremo Landini in futuro nelle liste di #FDI o della #Lega).
Il problema è però proprio nel nuovo corso di #GiuseppeConte: oggi non può proprio permettersi di irritare la premier (che Dio non voglia!!!) di un suo eventuale nuovo governo, #EllySchlein.
Caro Giuseppe, lo sai che le cose stanno così: un tempo eri tu a parlare di sovranità e popolo e fa davvero pena questo atteggiamento, questa specie di severa postura, che in realtà è genuflessione.