Найти - Пользователи
Полная версия: Запись в файл бинарной строки как байтов
Начало » Python для новичков » Запись в файл бинарной строки как байтов
1 2
ivan342
У меня есть вот такие бинарные данные
0110000111100001011100001
как мне их записать файл, а потом получить тоже самое?
JOHN_16
ivan342
Если это поток битов, то почему их 25 ?
ivan342
Это просто как пример (который не удачный получился).
Вообще это нужно для алгоритма сжатия lz78. Там я получаю примерно такую строку и ее надо уметь записывать в файл.
izekia
JOHN_16
Если это поток битов, то почему их 25 ?
я даже стесняюсь спросить зачем ты их считал)))
izekia
ivan342
Это просто как пример (который не удачный получился). Вообще это нужно для алгоритма сжатия lz78. Там я получаю примерно такую строку и ее надо уметь записывать в файл.
то есть Вы рассуждаете об алгоритме сжатия не зная что существует array.tofile
JOHN_16
izekia
я даже стесняюсь спросить зачем ты их считал)))
скажем так, первая мысль в плане решения разумеется разбивать строку на подстроки по 8 симолов что бы их интерпретировать в байты, ну я скопировал строку в питон и сделал len() что бы увидеть сколько там будущих байт … и тут все стало ясно )
izekia
JOHN_16
ахаха, подошел к вопросу буквально)
Iskatel
izekia
Да хрен с ним, с буквальным подходом, но вот это:
ivan342
У меня есть вот такие бинарные данные

Я в жизни не встречал никогда (убейте меня об стену) чтоб данные вот так приходили…

izekia
Iskatel
а они не спрашивают и приходят)
простым письмом: заплатите столько денег
 0110000111100001011100001
приходится считать)
scidam
как мне их записать файл, а потом получить тоже самое?

Поскольку нельзя создать файлы размером, скажем, 3.5 байта, то нужен специальный контейнер, который будет хранить ваши 25, или какое-либо еще не кратное 8, число бит.
Этот контейнер, например. может быть следующим:
1-4bytes – для хранения числа бит, которые мы сохраняем
data - данные дополненные нулями до кратности 8 наши битовые данные
И сохранять вот такой контейнер
(1-4bytes auxiliary data)( data )
с помощью модуля struct, например.
Обратно, также с помощью structа, а потом отщипнуть нужное количество бит…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB