Декомпрессия с помощью PyLZMA
Я сжимаю свои файлы, используя этот скрипт
import pylzma, struct i = open(path+fileName,'rb') o = open(path+zipName+'.zip','wb') data = i.read() c = pylzma.compressfile(data, eos=1) result = c.read(5) result += struct.pack('<Q', len(data)) o.write(result + c.read()) i.close() o.close()
Я использую этот метод, как показано в документации PyLZMA, поскольку он позволяет читать мои файлы с помощью 7zip или lzma.exe. Декомпрессия с использованием 7zip отлично работает, но не работает, когда я использую PyLZMA. Я использую это:
i = open(path+name+'.zip', 'rb') o = open(path+name, 'wb') data = i.read() u = pylzma.decompress(data) o.write(u)
Он останавливается на pylzma.decompress, и я получаю следующую ошибку:
ТипError: ошибка при распаковке: 1
- Выходной файл Django Compressor Blank Css
- Python 2.7 pyLZMA работает, Python 3.4 Модуль LZMA не
- LZ77 сжатые зарезервированные байты "<,>"
- Django: сжатие данных TextField (string) на уровне базы данных или уровне кода
- Как мне сжать сжатие строки в Python?
Если я правильно читаю документацию (у меня возникли проблемы с установкой PyLZMA, поэтому я не могу проверить), compress()
выводит строку, которую может обрабатывать функция decompress()
.
Однако, чтобы сжатая строка была совместима с другими утилитами, необходимо вставить длину в 8 байтов между первыми 5 байтами и остальными сжатыми данными.
Таким образом, если вы хотите распаковать данные с помощью PyLZMA, я подозреваю, что вам нужно будет вручную удалить это поле длиной в 8 байтов (самым быстрым способом было бы, вероятно, открыть входной файл, прочитать 5 байтов, пропустить 8, а затем прочитать оставшуюся часть файл).
- Python. Каталог Unchroot
- Нарезка массива NumPy – выбор значений, соответствующих определенным индексам
- Python – извлечение файлов из большого (6GB +) zip-файла
- архив с открытием ошибок (7z) в python при создании 7zip
- Реализации Python: Inflate и Deflate
- Загрузка большого файла в ошибку python: сжатый файл закончился до того, как был достигнут маркер конца потока
- сжатие огромного набора аналогичных строк
- Являются ли Python модулями сжатия поточно-безопасными в Linux? В Google App Engine?
- Python: сокращение использования памяти словарем
- Похудение на xml
- Среднее количество бит, необходимых для хранения одной буквы британского английского языка, с использованием идеального сжатия в python