Мимик 7zip с питоном - PullRequest
0 голосов
/ 19 мая 2018

Я использую Python 3.6, и в настоящее время я выполняю подпроцесс в своей программе 7zip для получения необходимого сжатия.

subprocess.call('7z a -t7z -ms=off {0} *'.format(filename))

Я знаю, что класс zipfile имеет сжатие 'ZIP_LZMA', но приложение, которое я передаю, тоже говорит, что выходной файл неверен.Так что еще мне нужно добавить в класс ZipFile, чтобы он имитировал приведенную выше команду?

1 Ответ

0 голосов
/ 24 мая 2018

Если вы не очень заботитесь о Windows, то, возможно, libarchive может помочь.В Ubuntu, например:

$ sudo apt install python3-libarchive-c

Затем:

import libarchive
with libarchive.file_writer('test.7z', '7zip') as archive:
    archive.add_files('first.file', 'second.file', 'third.file')

Затем есть библиотека pylib7zip , которая упаковывает существующую 7z.dll и, кажется, предлагаетальтернатива только для Windows.

...