Можно ли в 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
🎥- ÉRASE UNA VEZ -🎥
Título Original: Once Upon a Time
Género:#Fantasía
Temporadas: 7 📼
Año: 2011 - 2018
Origen: EEUU 🇺🇸
Tráiler:dai.ly/x7xaiaw
Sinopsis:
Serie de TV (2011-2018). 7 temporadas. 156 episodios. Mezclando el mundo real y los cuentos de hadas, se cuenta la historia de Emma Swan, una mujer cuya vida cambia cuando su hijo, al que había dado en adopción diez años antes, la encuentra. Él cree que su madre pertenece a un mundo irreal y que es la hija de Blancanieves.
Disponible:Disney+
@SeriesClubHD
📺- SOMBRA Y HUESO -📺
Título original: Shadow & Bone
Género:#Fantasía
Temporadas: 2 📼
Año: 2021 - 2023
Origen: EEUU 🇺🇸
Tráiler: dai.ly/x8ie4ug
Sinopsis:
Fuerzas siniestras conspiran contra una joven soldado que descubre un poder mágico capaz de unir a su país. Basada en las novelas del universo Grisha de Leigh Bardugo.
Disponible:Netflix
@SeriesClubHD
📺- DESTINO: LA SAGA WINX -📺
Título original: Fate: The Winx Saga
Género:#Fantasía
Temporadas: 2 📼
Año: 2021
Origen: Reino Unido 🇬🇧
Tráiler: dai.ly/x8d7ztb
LGBTI/Woke:Sí👬
Sinopsis:
Destino: La saga Winx sigue el día a día de cinco hadas que empiezan a estudiar en Alfea, un internado en el que aprenderán a dominar sus poderes mágicos además de enfrentarse a problemas más terrenales como el amor, la rivalidad y unos monstruos que amenazan su existencia. Del creador Brian Young (Crónicas Vampíricas), "Destino: La saga Winx" es una reinvención en acción real de la serie italiana de dibujos animados WINX CLUB de Iginio Straffi.
Disponible:Netflix
@SeriesClubHD
📺- RAGNAROK -📺
Título original: Ragnarok
Género:#Drama#Fantasía
Temporadas:3 📼
Año: 2020
Origen: Noruega 🇳🇴
Tráiler:http://youtu.be/WWI2U8cFGl0
Sinopsis:
Un pequeño pueblo noruego que experimenta inviernos cálidos y aguaceros violentos parece dirigirse a otro Ragnarok, a menos que alguien intervenga a tiempo.
Disponible:Netflix
@SeriesClubHD
📺- LA ACADEMIA DEL PARAGUAS -📺
Título Original: The Umbrella Academy
Género:#Fantasía#Acción
Temporadas: 4 📼
Año: 2019 - 2024
Origen: EEUU 🇺🇸
Tráiler:dai.ly/x91tgs0
Sinopsis:
La vida de los miembros separados de una familia de superhéroes -Monocle, Spaceboy, Kraken, Rumor, Séance, Number Five, Horror y White Violin-, quienes trabajan juntos para resolver la misteriosa muerte de su padre mientras se enfrentan juntos a numerosos conflictos debido a sus muy diferentes personalidades y habilidades.
Disponible:Netflix
@SeriesClubHD
📺- THE UMBRELLA ACADEMY -📺
Título original: The Umbrella Academy
Género:#Fantasía#Acción
Temporadas: 3 📡
Año: 2019 - Presente
Origen: EEUU 🇺🇸
Tráiler: dai.ly/x8ayens
Sinopsis:
Narra la vida de los miembros separados de una familia de superhéroes -Monocle, Spaceboy, Kraken, Rumor, Séance, Number Five, Horror y White Violin-, quienes trabajan juntos para resolver la misteriosa muerte de su padre mientras se enfrentan juntos a numerosos conflictos debido a sus muy diferentes personalidades y habilidades.
Disponible:Netflix
@SeriesClubHD
📺- CARNIVAL ROW -📺
Título original: Carnival Row
Género:#Fantasía#Suspenso
Temporadas: 2 📼
Año: 2019 - 2023
Origen: EEUU 🇺🇸
Tráiler: dai.ly/x8h2gy4
Sinopsis:
En la oscura y futurística ciudad neo-victoriana de Burge, una serie de sucesos harán que la fantasía negra se mezcle con la realidad. Burge se ha convertido en un refugio para las criaturas de fantasía que han huido de sus respectivos mundos asolados por la guerra. Pero todo se complicará cuando un peligroso asesino en serie comience a dar caza a los no humanos. El inspector de la policía Rycroft Philostrate (Bloom) será el encargado de investigar el último caso: el asesinato de una cantante. Y aunque el inspector trata de no involucrarse personalmente en el caso, pronto descubrirá que no es fácil separar los sentimientos del trabajo.
Disponible:Prime Video
@SeriesClubHD
🎥- SWEET TOOTH: EL NIÑO CIERVO -🎥
Título Original: Sweet Tooth
Género:#Aventura#Fantasía
Temporadas: 3 📼
Año: 2021 - 2024
Origen: EEUU 🇺🇸
Tráiler:dai.ly/x8yuwza
Sinopsis:
Un cataclismo ha devastado el mundo. Gus, mitad chico y mitad ciervo, se une a una variopinta familia de niños híbridos como él para buscar respuestas a lo ocurrido.
Disponible:Netflix
@SeriesClubHD
📺- LAS CRÓNICAS DE SHANNARA -📺
Título original: The Shannara Chronicles
Título Alternativo: Shannara
Género:#Fantasía#Aventura
Temporadas:2 📼
Año: 2016
Origen: EEUU 🇺🇸
Tráiler:youtu.be/2cbLfgM5z7M
Sinopsis:
Todo comienza cuando Ellcrys, un místico árbol élfico enferma y su muerte está cada día más cerca. Este árbol ha sido la única pieza mágica que ha protegido siempre las Cuatro Tierras del mundo maquiavélico de los demonios. Amberle Elessedil es la única que puede salvarlo. Para ello, tendrá que desbloquear la magia de los elfos que lleva miles de años sin utilizarse. Con la ayuda de Wil Ohmsford, viajará por cada rincón para buscar la magia perdida y curar al árbol Ellcrys.
Disponible:Netflix⏳
@SeriesClubHD
📺- THE WITCHER -📺
Título original: The Witcher
Género:#Fantasía#Aventura
Temporadas:4
Año: 2019📡
Origen:EEUU🇺🇸
Tráiler:https://dai.ly/x8mqrhn
Sinopsis:
Geralt, un brujo que se dedica a cazar monstruos genéticamente modificados, busca su lugar en un mundo donde a menudo los humanos demuestran ser peores que las bestias.
Disponible:Netflix
@SeriesClubHD
📺- LA RUEDA DEL TIEMPO -📺
Título original:The Wheel of Time
Género:#Fantasía#Aventura
Temporadas:2
Año: 2021📡
Origen:EEUU🇺🇸
Tráiler:https://dai.ly/x8mmzmw
Sinopsis:
Esta comedia televisiva sigue las aventuras y desventuras en el trabajo, el amor y la vida de seis amigos veinteañeros que viven en Manhattan durante los noventa.
Disponible:Prime Video
@SeriesClubHD
📺- EL PROBLEMA DE LOS 3 CUERPOS -📺
Título original: 3 Body Problem
Título Alternativo: Three-Body Problem
Género:#CienciaFicción#Fantasía
Temporadas: 1📡
Año: 2024 - Presente
Origen: EEUU 🇺🇸
Tráiler: dai.ly/x8u0r80
Sinopsis:
Una decisión tomada en China en los años 60 trasciende el tiempo y el espacio, obligando a unos científicos a afrontar la peor amenaza para la humanidad en el presente.
Disponible:Netflix
@SeriesClubHD