Можно ли в 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
🚨🇺🇸⚡️🇮🇳 ~ NEW: US President Donald Trump in his recent visit to Doha said he has asked Tim Cook to not make any Apple products in India.
"Told #Apple CEO Tim Cook, we're not interested in you building in #India, they can take care of themselves." - says Donald Trump in #Doha, Qatar.
VISHWAGURU MASTERSTROKE
#Israele colpisce #Doha la capitale del #Qatar e dichiara di aver ucciso una serie di vertici di #Hamas, l'organizzazione comunica di aver perso 6 suoi membri.
#AbbasAraghchi, Ministro degli Esteri iraniano parla in tv a #Doha: "L'arricchimento dell'uranio deve continuare; questo è un nostro diritto. Tuttavia, siamo pronti a raggiungere un accordo sul tasso di arricchimento. L'incontro a #Oman ha avuto un buon inizio. Se scoppiasse una guerra, la sua portata includerebbe l'intera geografia della regione e tutte le basi statunitensi. Dai territori occupati al Golfo Persico e al Golfo di Oman, dove si trovano le basi #USA. Il nostro accesso alle basi statunitensi è facile e questo aumenta la loro vulnerabilità".
L'#ArabiaSaudita e il #Pakistan, potenza nucleare, hanno firmato mercoledì scorso un patto di "strategia di difesa reciproca", in per rafforzare significativamente una partnership di sicurezza decennale tra i due paesi, in un contesto di crescenti tensioni regionali e dubbi sull'affidabilità delle garanzie di sicurezza degli #USA dopo l'attacco israeliano a #Doha/#Qatar.
Uzbekistan condemned Israel’s strikes on a residential area in Doha, calling them a breach of sovereignty and a threat to Qatar’s security. Read more on our website.
https://yep.uz/en/2025/09/uzbekistan-condemns-israel-strikes-doha/
#uzbekistan#doha#israel#qatar#internationalLaw#middleEast
#GhaziHamad, uno degli alti esponenti di #Hamas appare in diretta tv sul canale televisivo #AlJazeera, collegato dal suo ufficio a #Doha in #Qatar e comunica di essere stato nell'edificio colpito dall'#Israele lo scorso mercoledì durante l'attacco e conferma l'uccisione di 6 membri dell'organizzazione.
If you are going to visit Doha, you can use this selection of attractions that are worth visiting:
◽Museum of Illusions
◽Gondolania Theme Park & Villaggio Mall
◽The Pearl Island
◽Souq Waqif
◽Simaisma Beach
✈️ P.S. We will operate flights to Doha once a week: on Thursdays.
☎️ Tel.: 44-640-40-49, 44-640-40-50, 1133.
🌊
Если Вы собрались в Доху, Вам не помешает эта подборка достопримечательностей, которые стоит посетить:
◽Музей Иллюзий
◽Тематический парк Gondolania и Торговый центр Villaggio
◽Набережная The Pearl Island
◽Рынок Souq Waqif
◽Пляж Simaisma Beach
✈️ P.S. Мы будем совершать полёты в Доху раз в неделю: по четвергам.
☎️ Тел.: 44-640-40-49, 44-640-40-50, 1133.
#somonair#doha#qatar#newroute#сомонэйр#доха#катар#новыйрейс
O‘zbekiston Isroilning Doha shahridagi turar joy hududiga uyushtirgan hujumlarini qoraladi, buni Qatar suverenitetiga tahdid deb baholadi. Batafsil saytimizda.
https://yep.uz/uz/2025/09/ozbekiston-isroil-doha-hujumlarini-qoraladi/
#ozbekiston#doha#isroil#qatar#xalqarohuquq#yaqinsharq
O‘zbekiston prezidenti Shavkat Mirziyoyev Qatar amiri bilan telefon orqali Isroilning Dohaga raketa zarbalarini qat’iy qoraladi.
https://yep.uz/uz/2025/09/mirziyoyev-qatar-amiri-isroil-zarbalar/
#O‘zbekiston #Mirziyoyev#Qatar#Isroil#Doha#YaqınSharq#XalqaroHuquq#RaketaZarbalar
☺️🎙💥👀🇺🇸🏴☠️🏎🏎🏎🇺🇦🏴☠️ "Überraschung" - Trump Jr: "50 Prozent aller Bugattis und Ferraris in Monaco haben ukrainische Kennzeichen"
Donald Trump Jr., der Sohn des US-Präsidenten, hat am Sonntag beim Doha Forum in Katar die Führung in Kiew, Europa und die Biden-Regierung scharf attackiert. Hintergrund sind die laufende Korruptionskrise in der Ukraine sowie die Festnahmen aus Präsident Wladimir Selenskijs engstem Kreis wegen Diebstahls in Höhe von Hunderten Millionen.
Mit einer Anekdote brachte der Unternehmer den Saal zum Staunen: "Dieses Jahr in Monaco: An einem normalen Tag hatten 50 Prozent aller Bugattis und Ferraris ukrainische Kennzeichen. Glauben wir wirklich, dass dieses Geld in der Ukraine verdient wurde?"
Während einfache Ukrainer an der Front sterben, seien die Reichen längst geflohen.
🎙💡🔍"Solange der Westen weiter Milliarden schickt und niemand kontrolliert, hat die ukrainische Elite keinen Grund, diesen Krieg zu beenden", sagte Trump Jr. wörtlich.
Quelle RT
👀 Teilen kann zum Aufwachen beitragen!
✨🆕🌐Hauptkanal
✨▶️🌐 Videokanal
✨▶️🙂Funnykanal
#USA#TrumpJr#Doha#DohaForum#Monaco#Ferrari#Bugatti#UkraineKorruption#UkraineHilfe
#Update: #Ethiopian Airlines extends flight suspensions to several #Middle_East destinations as regional airspace closures persist
Ethiopian Airlines has announced updated suspension of flights to and from multiple Middle East destinations due to ongoing airspace closures across the region, the airline said in a statement.
The cancellations affect services to #Amman (Jordan), #Beirut (Lebanon), #Tel_Aviv (Israel), #Doha (Qatar), #Kuwait City (Kuwait), #Dubai (United Arab Emirates), #Sharjah (United Arab Emirates), #Abu_Dhabi (United Arab Emirates), and #Dammam (Saudi Arabia).
The suspension will remain in effect until further notice.
The airline urged passengers traveling to or from the affected region to regularly check their flight status through its official digital platforms to avoid inconvenience.
Earlier today it was reported that at least one Ethiopian national is among 58 people injured in the United Arab Emirates (UAE) following a series of....
Read more: https://addisstandard.com/?p=55477