Не удается извлечь файлы.xz с помощью python "tarfile.ReadError: файл не может быть успешно открыт"

Мне нужно извлечь некоторые текстовые файлы, сжатые в файлы.xz с помощью Python.

Мой код просто

import tarfile 

tarfile.open('file.xz')

Но это не с ошибкой

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.4/tarfile.py", line 1558, in open
    raise ReadError("file could not be opened successfully")
tarfile.ReadError: file could not be opened successfully

Я пробовал это на многих файлах.xz и получил тот же результат. Файлы.xz не повреждены и могут быть нормально открыты с помощью менеджера архивов gnome.

Я искал проблему и нашел это сообщение об ошибке, но я не уверен, что попробовать сейчас.

1 ответ

Решение

Если это не .tar.xz файл, но .xz файл, который вы должны использовать lzma модуль, а не tarfile модуль:

import lzma

with lzma.open("file.xz") as f:
    file_content = f.read()

Чтобы сохранить извлеченный контент:

with lzma.open("file.xz") as f, open('extracted', 'wb') as fout:
    file_content = f.read()
    fout.write(file_content)
Другие вопросы по тегам