Можно ли в 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
🎬O Poço (2019)
Gênero: #Terror, #Suspense, #Misterio
⭐️ IMDb: 7.0
⏳ Duração: 1 h 34 min
📝 Sinopse:
Uma prisão vertical com duas pessoas por nível tentando sobreviver. Há uma única plataforma de alimentos e dois minutos por dia para se alimentar.
Fonte: IMDb
🔵Inscreva-se em @Assistir
*Patrocinado: Anime Bot
🎥 - EQUINOX - 🎥
Título Original: Equinox
Año: 2019
Director: Tea Lindeburg
Reparto: Danica Curcic, Lars Brygmann, Karoline Hamm
Género: #Drama#Fantasía#Misterio
Idioma: Inglés 🇺🇸 / Español 🇲🇽
Subtítulos: Inglés 🇺🇸 / Español 🇲🇽
Trailer: youtube.com/sM1cJeh_AaY
Sinópsis:
Hace 20 años, Astrid presenció la desaparición de un autobús lleno de estudiantes. Ahora, acaba de encontrarse con una de las víctimas y decide investigar qué pasó.
@PeliculasClubHD
📺- LA CASA DE PAPEL -📺
Título original: Money Heist
Género:#Thriller#Misterio#Acción
Temporadas:5 📼
Año: 2017
Origen: España 🇪🇸
Tráiler:dai.ly/x85zpx6
Saga:Sí✅
Sinopsis:
Un misterioso personaje, que se hace llamar "El Profesor", planea el mayor de los atracos jamás ideado. Para llevar a cabo el ambicioso plan, recluta a una banda formada por personas con ciertas cualidades y algo en común: no tienen nada que perder. El objetivo es atracar la Fábrica Nacional de Moneda y Timbre, con la intención de quedarse encerrados dentro con una misión muy concreta: no robar dinero, sino crearlo. Tras cinco meses de reclusión, memorizando cada paso, cada detalle, cada probabilidad..., por fin llega el día. Les esperan once días de encierro en la Fábrica de Moneda, rodeados de los cuerpos de élite de la policía y con 67 rehenes en su poder.
Disponible:Netflix
@SeriesClubHD
𝙇𝙊𝙎 𝙄𝙇𝙐𝙎𝙄𝙊𝙉𝙄𝙎𝙏𝘼𝙎. 𝙉𝘼𝘿𝘼 𝙀𝙎 𝙇𝙊 𝙌𝙐𝙀 𝙋𝘼𝙍𝙀𝘾𝙀
Latino🇲🇽
2013 - 1h 55min - 1.9Gb
#Crimen〡 #Misterio〡#Suspenso
Sinopsis:
Un agente del FBI y un detective de Interpol le siguen la pista a un equipo de ilusionistas que realizan robos a bancos durante sus actuaciones y recompensan a sus audiencias con el dinero.
MÍRALA AHORA👇🏼
https://teraboxapp.com/s/1OJahLraVsEA4vsA67IAZjg
📺- LA NIEBLA -📺
Título original: The Mist
Género:#Fantasía#Terror#Misterio#Drama
Temporadas:1
Año: 2017📼
Origen:EEUU🇺🇸
Tráiler:youtu.be/unNxmFAjuvI
Sinopsis:
Los habitantes de un pueblo de Maine descubren cómo una niebla, que les ha invadido repentinamente, oculta criaturas aterradoras. Adaptación de la novela "La niebla" de Stephen King.
Disponible:⌛️Netflix
@SeriesClubHD
📺- TRUE DETECTIVE -📺
Título original: True Detective
Género:#Thriller#Misterio#Crimen#Drama
Temporadas:3 📡
Año: 2014
Origen: EEUU 🇺🇸
Tráiler:dai.ly/x7u8hdi
Sinopsis:
Dos detectives de Lousiana, Rust Cohle (Matthew McConaughey) y Martin Hart (Woody Harrelson), vuelven a investigar el difícil caso de un asesino en serie en el que ya habían trabajado. Obligados a regresar a un mundo tan siniestro, el avance de la investigación y el mayor conocimiento mutuo les enseñan que la oscuridad reside a ambos lados de la ley.
Disponible:HBO Max | Movistar Play
@SeriesClubHD
📺- MINDHUNTER -📺
Título original: Mindhunter
Género:#Drama#Crimen#Misterio#Suspenso
Temporadas: 2 📼
Año: 2017
Origen: EEUU 🇺🇸
Tráiler: youtu.be/Fz5au4VLZjo
Sinopsis:
Estados Unidos, finales de los años 70, comienzos de los 80. Dos agentes del FBI, Holden Ford (Jonathan Groff) y Bill Tench (Holt McCallny), miembros de la Unidad de Ciencia del Comportamiento, intentan resolver casos abiertos entrevistándose con criminales en serie encarcelados para conocer su psicología y formas de actuar.
Disponible:Netflix
@SeriesClubHD
📺- LA NIEBLA -📺
Título original: The Mist
Género:#Terror#Misterio#Halloween
Temporadas:1
Año: 2017📼
Origen:EEUU🇺🇸
Tráiler:youtu.be/unNxmFAjuvI
Sinopsis:
Los habitantes de un pueblo de Maine descubren cómo una niebla, que les ha invadido repentinamente, oculta criaturas aterradoras. Adaptación de la novela "La niebla" de Stephen King.
Disponible:Netflix
@SeriesClubHD
📺- SCREAM QUEENS -📺
Título original: Scream Queens
Año: 2015 📼
Temporadas: 2
Calificación: 7,1/10 (IMDb)
Género:#Comedia#Horror#Misterio
Audio: Inglés 🇺🇸 / Español 🇲🇽
Subtítulos: Inglés 🇺🇸 / Español 🇲🇽
Trailer:youtube.com/VrHq1pOn7xE
Sinopsis:
La Universidad de Wallace es golpeada por una ola de asesinatos relacionada con la muerte de una alumna veinte años atrás durante una fiesta en la casa de Kappa Kappa Tau, la fraternidad femenina más elitista del campus. El asesino comete sus crímenes vestido con el disfraz de la mascota de la universidad, El Diablo Rojo, y se ensaña especialmente con las chicas de KKT, que se encuentra en pleno proceso de selección de candidatas.
@SeriesClubHD