Ошибка данных Python LZMA при попытке распаковки поврежденаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка данных Python LZMA при попытке распаковки повреждена

Сообщение Anonymous »

response = requests.get('http://content.warframe.com/PublicExpor ... n.txt.lzma')
data = lzma.decompress(response.content)

Я получаю следующую ошибку:
_lzma.LZMAError: Corrupt input data

Я не думаю, что данные повреждены, поскольку я могу загрузить их из браузера и легко извлечь с помощью 7zip. Я пытался найти решение в Интернете, но, похоже, информации об этой проблеме не так много. Я также пробовал использовать другой способ распаковки, но безуспешно. (Python LZMA: сжатие данных закончилось до того, как был достигнут маркер конца потока)
Изменить: это текущее решение, которое «работает». В общем, отрежьте конец и игнорируйте ошибки EOF.
def fix():
response = requests.get('http://content.warframe.com/PublicExpor ... n.txt.lzma')
data = response.content
byt = bytes(data)
length = len(data)
stay = True
while stay:
stay = False
try:
decompress_lzma(byt[0:length])
except LZMAError:
length -= 1
stay = True

print(decompress_lzma(byt[0:length]))

# FROM: https://stackoverflow.com/a/37400585/15041587
def decompress_lzma(data):
results = []
while True:
decomp = LZMADecompressor(FORMAT_AUTO, None, None)
try:
res = decomp.decompress(data)
except LZMAError:
if results:
break # Leftover data is not a valid LZMA/XZ stream; ignore it.
else:
raise # Error on the first iteration; bail out.
results.append(res)
data = decomp.unused_data
if not data:
break
if not decomp.eof:
raise LZMAError("Compressed data ended before the end-of-stream marker was reached")
return b"".join(results)


Подробнее здесь: https://stackoverflow.com/questions/662 ... decompress
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • C# удалить zip-файл после распаковки, нужно проверить завершение распаковки?
    Anonymous » » в форуме C#
    0 Ответы
    77 Просмотры
    Последнее сообщение Anonymous
  • Как сохранить/восстановить состояние распаковки Zstandard для продолжения распаковки?
    Anonymous » » в форуме Python
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Установка/компиляция pylzma (привязка lzma к Python)
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Предупреждение пользователя: не удалось импортировать модуль lzma. Ваш установленный Python неполный
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Включает ли повышение Ubuntu 18.04 поддержку lzma?
    Anonymous » » в форуме C++
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»