11

我有一个代码可以用 zip 压缩特定文件夹中的每个文件,但我想用 7zip 压缩它,那该怎么办?

这是我到目前为止所拥有的:

for date in dict_date:#zipping folders and get same name like the folder
    with ZipFile(os.path.join(src, '{0}.7z'.format(date)), 'w') as myzip:
        for subFolder in dict_date[date]:
            for fil in os.listdir(os.path.join(src, date, subFolder)):
                if not fil.endswith('.7z'):
                    myzip.write(os.path.join(src, date, subFolder, fil))
4

2 回答 2

11

可以试试命令行方法

import subprocess
subprocess.call(['7z', 'a', filename+'.7z', filename])

或文件夹中的所有文件

subprocess.call(['7z', 'a', filename+'.7z', "*.*"])
于 2012-07-13T08:37:20.843 回答
0

似乎没有一个好的 Python 模块来创建 7z 存档(尽管文档说,py7zlib 只能读取它们)。

一种解决方法是下载 7z SDK ( http://www.7-zip.org/sdk.html ) 并通过 subprocess 模块使用随附的 7zr 可执行文件。7z 属于公共领域,因此您可以不受限制地携带这个独立程序。

于 2016-01-18T15:55:04.943 回答