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