如何在python中创建zipfile中的符号链接
问题描述:
我有一个zipfile,它存储在内存中作为io.BytesIO
缓冲区。在zipfile中,我需要为其中一个目录创建一个符号链接。如何在python中创建zipfile中的符号链接
以下是我迄今为止所尝试过的(从SO上的这个similar question开始),但它并没有像我想要的那样创建链接。
链路要被建立:根/秤/ LIB /管理程序/ KVM/pika_3_5
链接名称: '鼠兔'
环线位置:顶级
现有的zip文件:数据[“egg_buffer”]
with zipfile.ZipFile(data['egg_buffer'], 'a') as zip_buffer:
dest = 'root/scale/lib/hypervisor/kvm/pika_3_5'
info = zipfile.ZipInfo('pika')
info.external_attr |= 0120000 << 16L # symlink file type
info.compress_type = zipfile.ZIP_STORED
zip_buffer.writestr(info, dest)
data['egg_buffer'].seek(os.SEEK_SET)
其实这是建立在根级别文件名为“鼠”,但它不是一个符号链接,其内容与文本根/规模/ lib目录/管理程序/ esx65/pika_3_5。
答
可以使用os模块创建符号链接为
import os; os.symlink(src, dst)
哪里是src源文件和DST是符号链接文件。
+0
这会在磁盘上创建符号链接,而不是在(在内存中)zip文件中。 – ViFI
您是否试图在Windows上解压缩? Unix符号链接不能在Windows上工作,它们会以目标文件的形式显示为内容。 – mata