Можно ли в 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
Благодаря искусственному интеллекту Lenovo получила рекордную выручку в 20,5 млрд долларов
✅ Lenovo Group Ltd опубликовала исторические результаты за квартал, завершившийся в сентябре: выручка достигла рекордного уровня в 20,5 млрд долларов США, что на 15 процентов больше в годовом исчислении, благодаря высоким показателям в области искусственного интеллекта.
🔺 Скорректированная чистая прибыль также выросла на 25 процентов в годовом исчислении и составила 512 миллионов долларов.
➡️ Ян Юаньцин, председатель совета директоров и генеральный директор Lenovo, отметил:
«Используя тенденцию к демократизации ИИ и благодаря нашей четкой стратегии, операционному совершенству и постоянным инновациям, Lenovo добилась еще одного квартала рекордных показателей, добившись существенного прогресса как в сфере персонального, так и корпоративного ИИ».
«Мы продолжим использовать нашу уникальную глобальную и локальную модель, чтобы ориентироваться в условиях неопределенности и использовать колоссальные возможности гибридного ИИ, и при этом не только обеспечивать нашим акционерам устойчивую долгосрочную прибыль, но и делать ИИ по-настоящему персонализированным для каждого человека и каждого предприятия», — сказал Ян.
📌 Lenovo продемонстрировала двузначный рост выручки в годовом исчислении по всем основным бизнес-группам и регионам продаж. Структура выручки, связанной с ИИ, увеличилась на 13 процентных пунктов в годовом исчислении, составив 30% от общей выручки компании в этом квартале.
Источник: chinadaily
@chinastocksnet
Если полезно, поставьте лайк 👍😇
#Lenovo
#Lenovo🇪🇸🌎🛒🛒CHOLLAZO🇪🇸💲
💯Compite con el Legion 5 Gen 6 (15" AMD). Está equipado con todo lo que necesitas para dominar cualquier partida e incluye hasta procesadores móviles AMD Ryzen™ 7 5800H y tarjeta gráfica NVIDIA® GeForce RTX™ serie 30. Disfruta de imágenes nítidas en una pantalla WQHD de hasta 38,1 cm (15"), con una precisión de color asombrosa y Dolby Vision™. Por su parte, el sonido Nahimic 3D y el teclado Legion Truestrike te ayudan a atacar con precisión milimétrica.💯
❌ Precio antes: 1499 Euros
✅ Precio oferta: 979.30 Euros
🔵 Cupón: BDCBLACK
🌍https://bit.ly/3nXxTDH
🎁chollosmania🎁
Сегодня как и обещал, про прототип телефона с прозрачным экраном от китайской компании.
Lenovo в 2015-м году решила вернуться к идее прозрачного телефона. Правда, она показала только прототип смартфона под своим дочерним брендом Zuk. Экран устройства был прозрачным, но мог затемняться настолько, чтобы изображение по качеству и яркости было приближено к привычным дисплеям в других смартфонах, и возможно, это было бы прорывом в технологиях.
Но Lenovo решили не выпускать этот смартфон в серию.
А завтра я хочу закончить серию этих постов, но рассказом не про телефон. Что это будет - дождитесь завтра 💪
#Lenovo
📱📱 qayriladigan ekranli noutbuk kontseptsiyasini taqdim etdi
🆕 IFA 2025 ko‘rgazmasida kompaniya ThinkBook VertiFlex nomli noutbuk kontseptsiyasini namoyish qildi. Uning ekrani 90 darajaga burilib ochiladi.
💻 Lenovo vakillarining aytishicha, bu format kod yozish, hujjatlar bilan ishlash yoki smartfon ekranini chiqarish uchun qulay bo‘lishi mumkin.
⚙️ Texnik tafsilotlar:
- Displey: 14 dyuym
- Og‘irligi: 1,39 kg
- Qalinligi: 17,9 mm
Boshqa texnik xususiyatlari hozircha oshkor qilinmagan.
⚠️Bu hozircha faqat kontsept loyiha, yaqin orada savdoga chiqarilishi rejalashtirilmagan.
➡️#noutbuk#lenovo | Birinchi raqamli IT-Blog
Сегодня я расскажу вам ещё про один телефон с прозрачным экраном, представленный в 2010-м году.
Если про Xperia Pureness знают многие, то про эту китайскую подделку копию от Lenovo - мало кто слышал.
Отличий от SE в этом гаджете действительно не было, видимо, китайцы просто скопировали чужую идею.
Однако, телефон появился в продаже только в 2011-м когда уже можно было купить iPhone 4 или Samsung Galaxy S2, и этот дизайнерский китайский гаджет просто остался не у дел.
А ещё у китайцев был такой телефон - Explay Crystal, выпущенный в 2012-м году (фото 3, 4)
Завтра я снова расскажу вам, какое воплощение получила идея таких телефонов у японских производителей
#Lenovo
#Explay
Breakingviews TV: Lenovo's Shanghai glitch
Lenovo's reasons for canceling its $1.6 billion mainland listing are confusing, Robyn Mak says.
#News#Reuters#Breakingviews#Lenovo
Subscribe: http://smarturl.it/reuterssubscribe
Reuters brings you the latest business, finance and breaking news video from around the globe. Our reputation for accuracy and impartiality is unparalleled.
Get the latest news on: http://reuters.com/
Follow Reuters on Facebook: https://www.facebook.com/Reuters
Follow Reuters on Twitter: https://twitter.com/Reuters
Follow Reuters on Instagram: https://www.instagram.com/reuters/?hl=en
➖@reutersworldchannel➖