Можно ли в 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
Наши победители уже в теме!😎
Часть ваших коллег вовсю тестируют подарки от RuFilms и берут с собой нашего Фила на работу, учёбу и даже в путешествия!
Вы тоже смотрите на это с лёгкой завистью? Признавайтесь! 😉
Мы всё поняли! И чтобы у всех был шанс на крутые плюшки, мы готовим кое-что особенное... ❄️
Обязательно подготовим наш традиционный НОВОГОДНИЙ КОНКУРС! 🎄
Так что не расслабляемся, подписываемся и ждём анонс. Будет жарко!🔥несмотря на зимнюю погоду
#rufilms
🎯ИГРА ДЛЯ АВПШНИКОВ
Принесли вам бинго аудиовизуального переводчика. Ситуации, с которыми коллеги сталкивались хотя бы раз в переводческой жизни! А получится ли у вас собрать полное бинго?Скидывайте в комментариях, какие пункты получилось зачеркнуть❌
За идею благодарим переводчицу Юлию Суфиарову 🫶
#rufilms
📺 Что ждет медиа-рынок в 2025 году?
Краткий видеоролик с представителями медиа-рынка о том, какие тренды нас ждут в этом году и что ждет российский рынок: https://vkvideo.ru/video-46499225_456240175?ref_domain=telesputnik.ru
#rufilms
Ирония судьбы по-китайски, или что смотрят на Праздник весны в Китае?🎆
🏮 В этом году новый год по лунному календарю празднуется с 29 января по 4 февраля. Мы спросили наших китайских друзей, какие фильмы они любят смотреть на Новый год? Оказывается, что китайской «Иронии судьбы» не существует. Ведь жители Поднебесной в праздники ходят в кинотеатры на свежие новинки.
Топ-5 фильмов, которые крутят в кино прямо сейчас:
📽唐探1900 (Детектив из Чайнатауна, 1900 год)
Четвертый фильм из серии «Детектив Чайнатаун». Приквел к основной истории. Фильм рассказывает историю о том, как охотник А-Гуй и молодой студент Цинь Фу встречаются в Чайнатауне Сан-Франциско в 1900 году и случайно создают команду «Детектив Чайнатауна» для расследования загадочного дела.
📽哪吒魔童闹海 (Нэчжа побеждает Царя драконов)
Нэчжа (哪吒 Nézha) — один из героев китайской мифологии. История о его рождении и взрослении характеризуется смелым пересмотром образа героя: в мультфильме его впервые изобразили как озорника.
📽射雕英雄传: 侠之大者 (Легенда о героях Кондора: Величайший герой)
Под предводительством Чингисхана монгольская армия движется на запад, чтобы сокрушить династию Цзинь, а затем уничтожить династию Сун на юге. Го Цзин собирает мастеров боевых искусств Центральных равнин, чтобы дать отпор и защитить родные земли.
📽封神第二部:战火西岐 (Творение богов 2: Битва с демоническим войском)
Второй фильм трилогии о посланниках богов. Эпичное китайское фэнтези о защите родного края главных героев — Сици. Продолжение борьбы за божественный артефакт «Список бессмертных».
📽熊出没 重启未来 (Медведи-соседи: Перерождение)
Франшиза о мишках, запущенная в 2012 году. Новый мультфильм — история о том, как герои попадают в будущее на сто лет вперёд. В это время на Земле происходит огромная катастрофа, и люди изо всех сил пытаются выжить. А виновником стал один из наших мишек.
#rufilms
🥇 RuFilms вошла в 20-ку лучших переводческих компаний по версии АПК
Ассоциация переводческих компаний опубликовала ежегодный рейтинг на основании открытых данных по российским компаниям, имеющим переводческий ОКВЭД.
Весь рейтинг и критерии его составления читайте на сайте.
#rufilms
💎Лучшие субтитровщики ассоциации SUBTLE
Международная ассоциация субтитровщиков SUBTLE составила список лучших членов ассоциации, которые создавали и редактировали субтитры и SDH, перевод под дубляж для сериалов, номинированных на премию Emmy Awards 2024.
Среди рабочих языков итальянский, греческий, украинский, венгерский, румынский, датский, польский, английский и другие.
Список отмеченных переводчиков и подробности.
#rufilms
💡 Переводческая загадка от нашего переводчика Романа Рожкова
В песне Eminem - Stepping Stones есть строчка, которую можно услышать двумя способами:
⭐️ When your reign is over you'll hardly be missed
⭐️ When your rain is over you'll hardly be mist
🤔 Как бы вы перевели строчку, чтобы сохранить двусмысленность игры слов?
#rufilms
🎊 Вы думали, что праздники закончились? Расчехляйте свои формы для тортиков: сегодня чествуем целых два языка 👅
💫 23 апреля – такую дату ООН выбрала, чтобы отметить праздники для двух самых распространенных языков в мире. Сегодня День английского и День испанского языков.
🤔 В отличие от китайского языка никаких мифов и легенд в выборе этой даты не заложено. Зато таким жестом ООН позволяет нам вновь почтить вклад классиков мировой литературы – Уильяма Шекспира и Мигеля де Сервантеса Сааведры. 23 апреля традиционно отмечается день рождения и дата смерти Шекспира, а также дата смерти Сервантеса.
😁 Интересный факт: на Кинопоиске есть страничка Шекспира, где он указан сценаристом для 1436 фильмов (собственно, снятых по мотивам его пьес). Сервантеса Кинопоиск также не оставил в стороне, указав 108 фильмов в его «фильмографии».
#rufilms
🎆 Сегодня, 20 апреля, отмечается День китайского языка или 中文日
В 2010 году ООН учредила языковые дни для каждого из шести ее официальных языков: арабского, китайского, английского, французского, русского и испанского. Цель этих праздников – способствовать многоязычию и культурному разнообразию мира.
🤔 Почему для китайского языка была выбрана именно сегодняшняя дата? Предполагается, что в честь Цан Цзе (仓颉) – легендарного древнейшего деятеля, которому приписывают изобретение китайской письменности. Мифы гласят, что у него было четыре глаза. Когда в течение трех дней, в том числе и 20 апреля, он создавал иероглифы, боги и призраки плакали, а с неба сыпался дождь из проса. С тех пор китайцы каждый год отмечают это событие, называя его Гую (谷雨 – «хлебные дожди»).
❓Какие китайские фильмы посоветуете на вечер?
#rufilms
春节快乐🐲
🎊 Поздравляем всех подписчиков с наступлением Нового года по восточному календарю, китайским «Праздником весны»🎋
Предлагаем на выходные выбрать фильм о том, как в Китае празднуют главный праздник года🥳
#rufilms
💫 Друзья, как проходит ваша первая рабочая неделя в этом году? Соскучились по переводам? А мы принесли вам потешную сценку из фильма "Иван Васильевич меняет все" от ТНТ об авторском и официальном переводе кино😁
#rufilms
📢 Новый контент, новые языки, новые рабочие процессы - способна ли перестроиться отрасль локализации под запросы зрителей и вещателей?
По общему мнению компаний-локализаторов, представителей телеканалов и онлайн-платформ, а также актеров озвучивания в ближайшие 20 лет апокалипсис в отрасли не состоится.
🔥 Дискуссия на тему будущего отрасли перевода и озвучивания контента 29 сентября была жаркой. Однако все согласны – искусственный интеллект еще надолго останется «пластмассовым», неграмотным, бездушным вариантом работы с контентом. И центром работы над фильмами еще много десятилетий будет человек.
❗️Полное видео на нашем ютуб-канале: https://youtu.be/PyhqwGfRDW8
#rufilms