Библиотека tar-файлов Python 3.5 lzma CompressLevel

Действительно ли нет способа установить уровень сжатия для сжатия lzma при использовании библиотеки tarfile? Я прочитал следующее:

Для режимов 'w:gz', 'r:gz', 'w:bz2', 'r:bz2', 'x:gz', 'x:bz2', tarfile.open() принимает аргумент ключевого слова compresslevel (по умолчанию 9) указать уровень сжатия файла.

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

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


person leaty    schedule 18.11.2016    source источник


Ответы (1)


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

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

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

person Martijn Pieters    schedule 18.11.2016