7

许多 zip 档案(尤其是那些包括 OS X 应用程序的档案)都包含符号链接。使用该zipfile.extractall方法时,符号链接会变成常规文件。任何人都知道如何将它们保存为链接?

4

3 回答 3

3

There seems to be no way to do this using the zipfile module. I solved it using the subprocess module:

from subprocess import check_output, CalledProcessError, STDOUT

try:
   check_output(['unzip', '-q', my_zipfile, '-d', destination], stderr=STDOUT)

...

except CalledProcessError as err:
   (use err.cmd, err.returncode and err.output to take action)
于 2014-11-21T19:00:57.073 回答
2

不使用extractall方法。您需要手动完成,可能以类似这样的内容结束(除非您是在提取而不是压缩)。

于 2013-11-02T00:58:34.133 回答
-2

使用 Mark Lutz 的ziptools,您可以使用完整的符号链接压缩和提取 zip。

尝试:

import ziptools

ziptools.extractzipfile('include-symlink.zip', './output-folder')

归功于 Mark Lutz:https ://learning-python.com/ziptools.html

于 2018-10-07T08:52:00.660 回答