使用Python解压缩存档时如何保留符号链接?

时间:2013-11-02 00:27:35

标签: python

许多zip档案(特别是那些包含OS X应用程序)都包含符号链接。使用zipfile.extractall方法时,符号链接将转换为常规文件。有人知道如何将它们保存为链接吗?

3 个答案:

答案 0 :(得分:3)

使用zipfile模块似乎无法做到这一点。我使用子进程模块解决了它:

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)

答案 1 :(得分:2)

不使用extractall方法。你需要手动完成,可能以something like this的内容结束(除非你提取不压缩)。

答案 2 :(得分:0)

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

尝试:

import ziptools

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

马克·鲁兹(Mark Lutz)的积分:https://learning-python.com/ziptools.html