2017-04-04 114 views
0

我有一个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。

+0

您是否试图在Windows上解压缩? Unix符号链接不能在Windows上工作,它们会以目标文件的形式显示为内容。 – mata

回答

1

可以使用os模块创建符号链接为

import os; os.symlink(src, dst) 

哪里是src源文件和DST是符号链接文件。

+0

这会在磁盘上创建符号链接,而不是在(在内存中)zip文件中。 – ViFI