Можно ли в 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
#Giappone
Il Comitato norvegese per il Nobel ha deciso di assegnare il Nobel per la Pace all'organizzazione giapponese Nihon Hidankyo, il movimento di base di sopravvissuti alla bomba atomica di Hiroshima e Nagasaki, che ha ricevuto il Nobel per i suoi sforzi volti a realizzare un mondo libero dalle armi nucleari e per aver dimostrato attraverso le testimonianze che le armi nucleari non devono mai più essere utilizzate.
@OsservatorioEsteri
#Giappone, #Trump: “Il Grande Paese del Giappone terrà un'importantissima Elezione Legislativa domenica 8 febbraio 2026. I risultati di questa Elezione sono molto importanti per il futuro del Giappone.
Il Primo Ministro, Sanae Takaichi, ha già dimostrato di essere una Leader forte, potente e saggia, e una persona che ama veramente il suo Paese. Non vedo l'ora di accogliere il Primo Ministro Takaichi alla Casa Bianca il 19 marzo.
Durante la mia visita in Giappone io, e tutti i miei Rappresentanti, siamo rimasti estremamente colpiti da lei. Oltre alla Sicurezza Nazionale, gli Stati Uniti e il Giappone hanno lavorato a stretto contatto per realizzare un Accordo Commerciale molto sostanzioso, che avvantaggia fortemente entrambi i Paesi.
Il Primo Ministro Takaichi è una persona che merita un riconoscimento potente per il lavoro che lei e la sua Coalizione stanno svolgendo e, pertanto, come Presidente degli Stati Uniti d'America, è un mio Onore fornirle il mio Appoggio Completo e Totale, e a ciò che la sua stimatissima Coalizione rappresenta.
LEI NON DELUDERÀ IL POPOLO DEL GIAPPONE!
Buona fortuna per il vostro importantissimo Voto di domenica.
PRESIDENTE DONALD J. TRUMP”
#Italia#Giappone
Mario #Draghi: "Il governo italiano esprime la sua ferma condanna per l'attentato a Shinzo Abe. L'Italia è vicina ad Abe e al popolo giapponese in questo momento drammatico."
@UltimoraPolitics
🇯🇵#Giappone - 🚾🚺 Una sessantina di deputate giapponesi, tra cui la prima ministra Sanae #Takaichi, hanno firmato una petizione per aumentare i bagni per le donne nel complesso del parlamento a Tokyo.
Alle ultime elezioni, nel 2024, sono state elette 73 deputate su 465 seggi della Camera (il numero più alto di sempre) e nei pressi dell’aula delle sessioni plenarie c’è un solo bagno per le donne, con all’interno due stanzini. (ilPost)
@UltimoraPolitics24
🇮🇹🇯🇵 Giorgia #Meloni incontra la premier giapponese Sanae #Takaichi: "Un incontro importante per rafforzare un rapporto fondato su rispetto reciproco, amicizia e valori condivisi, che affonda le radici in oltre 160 anni di relazioni diplomatiche e guarda con decisione al futuro. Abbiamo ribadito la volontà di far crescere una cooperazione strategica sempre più solida: dall’economia all’innovazione, dalla tecnologia all’industria, dalla sicurezza alla ricerca, fino alle grandi sfide globali. #Italia e #Giappone sono partner affidabili, capaci di lavorare insieme per la stabilità, la crescita e un ordine internazionale fondato sulle regole, sul dialogo e sulla responsabilità. In un mondo che cambia rapidamente, rafforzare legami come questo significa costruire sicurezza e opportunità concrete per i nostri cittadini e per le future generazioni. Un’amicizia che si consolida. Una collaborazione che guarda lontano".
@UltimoraPolitics24
🇯🇵 Elezioni #Giappone – Trionfo per Sanae #Takaichi: secondo gli exit poll il #LDP prenderebbe 274-328 seggi su 465 della Camera Bassa.
@UltimoraPolitics
#Giappone ❗️Morto l'ex Primo Ministro giapponese Shinzō #Abe (#LDP|Centro-destra). Aveva 67 anni. L'ex premier, il più longevo nella storia del Giappone, è stato colpito al petto da due proiettili durante un comizio. @UltimoraPolitics
#Giappone
❗️Morto l'ex Primo Ministro giapponese Shinzō #Abe (#LDP|Centro-destra). Aveva 67 anni. L'ex premier, il più longevo nella storia del Giappone, è stato colpito al petto da due proiettili durante un comizio.
@UltimoraPolitics
🇯🇵#Giappone — exit poll: il #LDP (grande tenda conservatrice) da solo non ha più la maggioranza. Data l’alleanza di governo con il #Komeito (centro buddista), è ancora incerto se insieme riusciranno a confermare la maggioranza (almeno 233 seggi).
@UltimoraPolitics
#Giappone
Il leader di #NKoku Takashi #Tachibana ha cambiato per la settima volta il nome del partito, dopo l'ultima volta nel gennaio 2022. Il partito passerà da "Partito che protegge coloro che non pagano il canone NHK" (NHK受信料を支払わない国民を守る党) a semplicemente "Partito NHK" (NHK党).
@UltimoraPolitics
🇯🇵🇺🇸Giappone, la visita di Takaichi a Washington: alleanza o subordinazione?
L’articolo di Giulio Chinappi dipinge un quadro brutale: Tokyo offre 73 miliardi di dollari in investimenti, accelera il riarmo e incassa umiliazioni simboliche – come la battuta di Trump su Pearl Harbor.
La premier Takaichi appare remissiva, elogiativa, e pronta a sacrificare l’autonomia strategica giapponese in cambio di una protezione USA sempre più onerosa. Investimenti sbilanciati, produzione missilistica congiunta, e un’alleanza che alcuni definiscono già un "trattato ineguale".
Ne vale davvero la pena? O il Giappone rischia di diventare solo una piattaforma avanzata della strategia americana in Asia?
🤔
#Giappone#USA#Takaichi#Geopolitica#Sovranità
https://www.marx21.it/internazionale/takaichi-a-washington-il-prezzo-della-subordinazione/
Il programma Future Combat Air System è stato definito "morto" da fonti di Parigi e Berlino citate da Politico: "Lo sanno tutti, ma nessuno lo vuole dire". Il presidente Emmanuel #Macron aveva avviato il progetto con l'allora cancelliera Angela #Merkel nel 2017. Berlino valuta il Global Combat Air Programme, guidato da #Italia, #RegnoUnito e #Giappone.
@UltimoraPolitics24