2016-11-18 4 views
1

Неужели нет способа установить уровень сжатия для сжатия lzma при использовании библиотеки tarfile? Я прочитал следующее:Python 3.5 tarfile library lzma compresslevel

для режимов 'w: GZ', 'г: GZ', 'ш: BZ2', 'г: BZ2', 'х: GZ', 'х: BZ2' , tarfile.open() принимает параметр ключевого слова compresslevel (по умолчанию 9), чтобы указать уровень сжатия файла.

Таким образом, документация, очевидно, говорит мне, что нет, поскольку здесь отсутствует «w: xs».

Но в этом случае, как вы сначала пишете tarfile, а затем используете библиотеку lzma для преобразования tarfile в lzma? Все это должно быть сделано с использованием дискового хранилища (файлы слишком велики, чтобы хранить их все в памяти, мы говорим о 2-4gb tarfiles).

ответ

2

Для lzma этот вариант называется preset, так как это имя используется в LZMACompressor class. Установите его в целое число от 0 до 9.

См. xzopen() classmethod, используемый для обработки файлов сжатия xz.

Документация в замешательстве в том, что она явно не упоминает эту опцию, я напишу вопрос, чтобы это улучшилось.

+0

Работает отлично, спасибо! – leaty

Смежные вопросы