TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #241 · 5 мај

Можно ли в 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

Hashtags

Резултати

Пронајдени 1 слични објави

Пребарај: #mandeladay2025

当前筛选 #mandeladay2025清除筛选
Russian Consulate in Cape Town

@rusconct · Post #2843 · 18.07.2025 г., 17:30

🎙 Address by Ambassador of Russia to South Africa Roman Ambarov on the occasion of Mandela Day (July 18,2025) 💬 Dear friends, On July 18, we celebrate #MandelaDay – a holiday officially declared by the United Nations to honor the legacy of the South African statesman and one of the most outstanding champions of human rights, Nelson Mandela. The name Mandela is, without exaggeration, familiar to every person living in the former Soviet republics. For two decades, the slogan “Freedom for Mandela!” echoed through the media and peaceful demonstrations, while our country remained the only major power that consistently refused to engage with the criminal racist regime. 👉 The Soviet Union not only provided substantial financial support to the South African liberation movement but also assisted in training military personnel. Nelson Mandela praised #RussiaSouthAfrica ties in the times of the struggle against apartheid: "In a difficult time, Russia became a second home for many of us. Hundreds of young South Africans received an education here — an opportunity denied to them in their own country. Many of our cadres received military training that turned them into skilled fighters for freedom and justice. <...> For the help in liberating the entire South African nation from an inhumane system, we say from the bottom of our hearts: 'Spasibo bolshoe!'" [Thank you very much in Russian]. The friendship forged in those challenging times for South Africans continues to live on between our nations today — thanks in no small part to Nelson Mandela himself. At the heart of Mandela Day, as established by the UN, lies a principle of action, not words – people are encouraged to perform acts of charity and help those in need. The Russian Embassy in South Africa fully embraces this spirit: as part of this commemorative occasion, Russian diplomats will provide assistance and support to three South African children social facilities. 🤝 I extend my warmest congratulations to all our South African friends on this special day and wish you well-being, prosperity, and strength in pursuing your ideals. #MandelaDay2025