Можно ли в 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
#VenerdìSanto In diretta dalla basilica di San Pietro in Vaticano, la solenne azione liturgica della Passione del Signore presieduta da Papa #LeoneXIV👇
https://www.youtube.com/watch?v=03pYP2Nmreo
A questo link i testi per seguire la #ViaCrucis del #VenerdìSanto e pregare con Papa #LeoneXIV👇
https://www.ilquadrantenews.it/news/dallurbe/via-crucis-al-colosseo-2026-i-testi-delle-meditazioni-e-delle-preghiere/
#VenerdìSanto Prima prostrato davanti l'altare, poi in ginocchio, a piedi scalzi davanti la croce. Papa #LeoneXIV, nella basilica vaticana, presiede la solenne azione liturgica della Passione del Signore.
Come da tradizione, in questo giorno particolare, l'omelia non è pronunciata dal Pontefice, bensì dal predicatore della Casa Pontificia, padre Roberto Pasolini. “Viviamo in un mondo in cui la voce di Dio non orienta più come un tempo il cammino condiviso dell’umanità - denuncia il frate -. Non perché la voce di Dio sia venuta meno ma perché spesso è una voce tra le tante, coperta da altre voci che promettono sicurezza, progresso, benessere. Eppure il mondo continua ad essere un luogo in cui si soffre e si muore, spesso senza colpa e senza ragione. Le #guerre non si fermano, le ingiustizie si moltiplicano e i più fragili sono quelli che ne fanno le maggiori spese”.
“È come se mancasse una parola capace di tenere insieme il cammino dell’umanità, un canto che sappia orientare positivamente i nostri passi verso un mondo più giusto e fraterno - l’analisi del religioso -. Eppure, se guardiamo bene, c’è qualcosa di sorprendente: una schiera silenziosa di persone che scelgono di dare ascolto ad una voce diversa. Alcuni la riconoscono chiaramente come la volontà di Dio, altri la sentono come un appello profondo e irrinunciabile della propria coscienza”.
“È una voce che non grida, che non si impone con la forza, che non propone scorciatoie - ha commentato Pasolini -. È un canto discreto e ostinato che invita ad amare, a restare, a non restituire mai il male ricevuto. Sono uomini e donne normali, che percorrono talvolta senza nemmeno saperlo la stessa via del servo del Signore. Non compiono gesti straordinari, semplicemente ogni giorno si alzano e provano a fare della loro vita qualcosa che non serve solo a loro, ma anche agli altri. Portano pesi che non hanno scelto, accolgono ferite senza indurirsi, non smettono di cercare il bene, anche quando sembra inutile. Non fanno rumore, non occupano la scena, ma tengono aperta la possibilità di un mondo diverso. È grazie a loro che il male non ha l’ultima parola, che la storia non si sta chiudendo nella violenza.”
“Questo #VenerdìSanto è stata concessa la possibilità di percorrere la Via Dolorosa a sei frati, guidati dal Custode di Terra Santa, padre Francesco Ielpo e sotto lo sguardo di più di duecento militari”. Lo fa sapere padre Ibrahim Faltas, responsabile delle scuole della Custodia, e tra i sei frati ammessi a partecipare alla Via Crucis a #Gerusalemme.
“Sessanta giornalisti non hanno potuto seguire la Via Crucis – spiega il frate -. È stato un momento di preghiera intensa e profonda, mentre meditavamo sulla Passione e Morte di Nostro Signore, il pensiero era continuamente rivolto all’umanità ferita, offesa, oltraggiata dalle guerre. È stato particolarmente triste percorrere vie silenziose e vuote che di solito sono affollate e rumorose”.
“La pesante situazione di guerra che sconvolge ulteriormente il Medio Oriente dal 28 febbraio scorso, ha raggiunto anche la Città Santa - ricorda padre Faltas -. Limitazioni di ingresso e di circolazione nella Città Vecchia e la chiusura del Santo Sepolcro e del Cenacolo già durante la Quaresima non hanno permesso di celebrare le liturgie del Triduo Pasquale alla presenza di fedeli. Era stata impedita nei venerdì di Quaresima la devozione della via Crucis, pratica religiosa guidata dai Frati della Custodia di Terra Santa”.
Il pensiero di padre Faltas va al #Colosseo, dove stasera Papa #LeoneXIV porterà la croce durante la Via Crucis, le cui meditazioni sono state preparate da padre Francesco Patton, già Custode di Terra Santa. “È questo motivo di gioia e di orgoglio per la nostra missione che continua sulla strada indicata da San Francesco a custodire i Luoghi Santi, a dare sostegno e conforto a chi li abita” conclude il frate.
Al #Colosseo la prima #ViaCrucis del #VenerdìSanto di Papa Prevost. #LeoneXIV porta la croce per tutte le stazioni, dall'interno dell'anfiteatro fino alla terrazza del Palatino dalla quale imparte la solenne benedizione. Oltre ventimila i fedeli presenti, che hanno accompagnato il pio esercizio pregando con torce e candele in mano.
Fil rouge della serata, le meditazioni di padre Patton ispirate alla vita di San Francesco d'Assisi: "Nel cammino sulle tue orme non importa quante volte cadiamo, importa solo che Tu ci sei accanto e sei disposto a risollevarci una volta ancora, innumerevoli volte, perché il tuo amore, il tuo perdono, la tua misericordia sono infinitamente più grandi della nostra fragilità. Sostienici nella nostra incredulità e dacci la grazia di credere che ci puoi rialzare".