Не удается извлечь файлы.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)