Можно ли в 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
🇷🇺 Rezultatet kryesore të politikës së jashtme të vitit 2024
Lexoni të plotë
Në vitin 2024, diplomacia ruse bëri përpjekje aktive për të zbatuar dispozitat e Konceptit të Politikës së Jashtme, të miratuar nga Presidenti i Federatës Ruse V.V.Putin në mars 2023.
Në kushtet kur Perëndimi kolektiv u përpoq të ruante elementet e dominimit të tij global dhe imponoi një "rend të bazuar në rregulla", Rusia ofroi një alternativë konstruktive, duke mbrojtur pandryshueshmërinë e ndjekjes së parimeve të Kartës së OKB-së në tërësinë dhe ndërlidhjen e tyre, ndër të tjera, ndaj zgjidhjes së krizës rreth Ukrainës dhe konflikteve të tjera <...>.
✅ Ka filluar zbatimi i iniciativës strategjike për krijimin e një arkitekture të sigurisë së pandashme në Euroazi, të prezantuar nga Presidenti i Federatës Ruse në qershor. <...>
✅ Potenciali ekonomik i Euroazisë së Madhe është forcuar falë promovimit të projektit për krijimin e një korridori transporti ndërkombëtar “Veri-Jug” <...>.
✅ Ka nisur zbatimi i një nisme të politikës së jashtme për bashkëpunimin ndërkombëtar në luftën kundër neokolonializmit.
✅ Janë arritur marrëveshje të rëndësishme për zhvillimin e bashkëpunimit integrues ruso-bjellorus brenda Shtetit të Unionit, kryesisht në sferën e financave, ekonomisë, industrisë dhe tregtisë.
🤝 Partneriteti gjithëpërfshirës dhe ndërveprimi strategjik me Kinën arriti një nivel të ri pas rezultateve të vizitës shtetërore të Presidentit V.V.Putin në këtë vend (maj).
🤝 Partneriteti strategjik veçanërisht i privilegjuar me Indinë mori një hov serioz falë vizitës zyrtare të kryeministrit të Indisë N.Modi në Rusi (korrik).
Ngjarje kryesore ndërkombëtare u bë samiti i Kazanit i bashkësisë BRICS, i cili, nën kryesimin rus, u zhvillua për herë të parë në formatin e zgjeruar dhe më në fund theu mitin e izolimit ndërkombëtar të Rusisë.
#Rezultatet2024
___
🇷🇺 Основные внешнеполитические итоги 2024 года
Читайте полностью
В 2024 году российская дипломатия прилагала энергичные усилия по реализации положений Концепции внешней политики, утвержденной Президентом Российской Федерации В.В.Путиным в марте 2023 года.
В условиях, когда коллективный Запад пытался сохранить рудименты своего глобального доминирования и насаждал «порядок, основанный на правилах», Россия предложила конструктивную альтернативу, выступив за непреложность следования принципам Устава ООН во всей их полноте и взаимосвязи, в том числе применительно к урегулированию кризиса вокруг Украины и других конфликтов <...>.
✅ Начата реализация представленной Президентом Российской Федерации в июне стратегической инициативы создания архитектуры неделимой безопасности в Евразии. <...>
✅ Экономический потенциал Большой Евразии укрепился благодаря продвижению проекта создания международного транспортного коридора «Север-Юг» <...>.
✅ Дан старт реализации внешнеполитической инициативы по международному сотрудничеству в борьбе с неоколониализмом.
✅ Достигнуты важные договорённости по развитию российско-белорусского интеграционного сотрудничества в рамках Союзного государства, прежде всего в финансово-экономической сфере, промышленности и торговле.
🤝 Всеобъемлющее партнёрство и стратегическое взаимодействие с КНР вышло на новый уровень по итогам государственного визита Президента В.В.Путина в Китай (май).
🤝 Особо привилегированное стратегическое партнёрство с Индией получило серьёзный импульс благодаря официальному визиту премьер-министра Индии Н.Моди в Россию (июль).
Флагманским международным событием стал Казанский саммит объединения БРИКС, которое под российским председательством впервые собралось в расширенном составе и окончательно развеяло миф о международной изоляции России.
#Итоги2024
#Rezultatet2024
🎙 Nga fjalimi i S.V.Lavrov dhe përgjigjet ndaj pyetjeve të mediave gjatë konferencës për shtyp mbi rezultatet e diplomacisë ruse në vitin 2024
#RusiKinë
• Lidhja ruso-kineze është një nga faktorët kryesorë stabilizues në jetën moderne ndërkombëtare.
• Strukturat që u krijuan mbi bazën e partneritetit ruso-kinez sigurisht i përkasin një lloji të ri shoqatash, ku nuk ka drejtues dhe ndjekës. Këto janë SCO, EAEU, e cila po harmonizon planet e saj integruese me projektin kinez "Një brez dhe një rrugë", BRICS, i cili është bërë edhe më i fortë pas samitit të Kazanit.
• Ne nuk duam të veprojmë kundër askujt, ne duam që të gjitha vendet të bëjnë biznes në bazë të respektimit të interesave të të gjithë partnerëve të tyre. Ky është qëndrimi i përbashkët i Moskës dhe Pekinit.
__
#Итоги2024
🎙 Из выступления и ответов С.В.Лаврова на вопросы СМИ в ходе пресс-конференции по итогам деятельности российской дипломатии в 2024 год:
#РоссияКитай
• Российско-китайская связка — это один из главных стабилизирующих факторов в современной международной жизни.
• Структуры, которые были созданы на основе российско-китайского партнёрства, безусловно принадлежат к объединениям нового типа, где нет ведущих и ведомых. Это и ШОС, и ЕАЭС, который гармонизирует свои интеграционные планы с китайским проектом «Пояса и пути», и БРИКС, который после Казанского саммита ещё больше окреп.
• Мы не хотим выступать против кого-то, мы хотим, чтобы все страны вели дела на основе уважения интересов всех своих партнёров. Это общая позиция Москвы и Пекина.
#Rezultatet2024
🎙 Nga fjalimi i S.V.Lavrov dhe përgjigjet ndaj pyetjeve të mediave gjatë konferencës për shtyp mbi rezultatet e diplomacisë ruse në vitin 2024
#OKB
• Reforma e Këshillit të Sigurimit të OKB-së është e nevojshme sepse jo të gjitha vendet që mbajnë përgjegjësi të veçantë në ekonominë globale, financat, politikën dhe punët ushtarake janë të përfaqësuara në [këtë organ].
• India dhe Brazili, në të gjitha aspektet, kanë merituar prej kohësh anëtarësimin e përhershëm në Këshillin e Sigurimit të OKB-së, së bashku me vendimin përkatës për anëtarësimin e përhershëm të Afrikës. Perëndimi po përpiqet ta prishë këtë proces dhe të sigurojë një pozicion të favorshëm për vete.
____
#Итоги2024
🎙 Из выступления и ответов С.В.Лаврова на вопросы СМИ в ходе пресс-конференции по итогам деятельности российской дипломатии в 2024 год:
#СБООН#ООН
• Реформа Совета Безопасности ООН нужна, потому что далеко не все страны, которые несут особую ответственность в мировой экономике, финансах, политике, военных раскладах, представлены в [этом органе].
• Индия, Бразилия по всем параметрам давно заслужили постоянную прописку в Совете Безопасности ООН, одновременно с соответствующим решением по африканскому постоянному членству. Запад пытается испортить этот процесс, обеспечить себе преимущественные позиции.
#Rezultatet2024
🎙Nga fjalimi i S.V.Lavrov dhe përgjigjet ndaj pyetjeve të mediave gjatë konferencës për shtyp mbi rezultatet e diplomacisë ruse në vitin 2024:
Abstrakte të shkurtra
#Multipolaritet#Perëndim
• Ne u detyruam të zmbrapsnim luftën e nisur kundër nesh nga “Perëndimi kolektiv” me qëllimin kryesor për të shtypur një konkurrent tjetër, të cilin Rusia u bë sërish në skenën ndërkombëtare. Qëllimi i tyre kryesor është të dobësojnë Rusinë gjeopolitikisht, duke krijuar kërcënime të drejtpërdrejta ushtarake ndaj Federatës Ruse në kufijtë dhe territoret e saj në përpjekje për të minuar potencialin tonë strategjik.
• Opozita ndaj diktaturës perëndimore është rikthyer tashmë në formën e rritjes së ekonomive të reja, qendrave financiare në Kinë, Indi, ASEAN, botën arabe, komunitetin e shteteve të Amerikës Latine dhe Karaibeve, Rusi së bashku me aleatët e saj në EAEU, CIS, CSTO, SCO, #BRICS.
• Refuzimi i konkurrencës së ndershme dhe përdorimi i metodave të padrejta, agresive të shtypjes së konkurrentëve manifestohet në politikën e sanksioneve, të cilat SHBA-ja dhe aleatët e saj e kanë bërë bazën e veprimeve të tyre në arenën ndërkombëtare, edhe ndaj Rusisë.
• Perëndimi është i dehur nga madhështia e tij, pandëshkueshmëria e tij, e drejta e vetëcaktuar për të vendosur për fatet e të gjithë popujve të botës. Një mendjemadhësi e tillë është një qëndrim i përbuzur ndaj pjesës tjetër të botës.
___
#Итоги2024
🎙 Из выступления и ответов С.В.Лаврова на вопросы СМИ в ходе пресс-конференции по итогам деятельности российской дипломатии в 2024 год:
Краткие тезисы
#Многополярность#Запад
• Мы были вынуждены отражать войну, начатую против нас «коллективным Западом» с главной целью подавить очередного конкурента, каковым Россия вновь оказалась на международной арене. Их главная цель – ослабить Россию в геополитическом плане, создавая на её границах, на её территориях прямые военные угрозы Российской Федерации в попытке подсечь наш стратегический потенциал.
• Противостояние западному диктату уже восстановилось в лице поднимающихся новых экономик, финансовых центров в Китае, Индии, АСЕАН, арабском мире, сообществе латиноамериканских и карибских государств, России вместе со своими союзниками по ЕАЭС, СНГ, ОДКБ, ШОС, #БРИКС.
• Отказ от честной конкуренции и использование недобросовестных, агрессивных методов подавления конкурентов проявляется в санкционной политике, которую США и их союзники сделали основой своих действий на международной арене, в том числе в отношении России.
• Запад одурманен своим величием, своей безнаказанностью, своим самоприсвоенным правом вершить судьбы всех народов мира. Такое самомнение — презренное отношение ко всему остальному миру.