Python ZipFile vs OS Zip

时间:2014-03-25 18:59:53

标签: python zip zipfile

我似乎无法绕过这个。

我创建了一个像这样的zipfile:

archive_name = 'data.zip'
with zipfile.ZipFile(archive_name, 'w') as archive:
    info = zipfile.ZipInfo('file_a.txt')
    info.date_time = now
    info.compress_type = zipfile.ZIP_DEFLATED
    archive.writestr(info, file_a)

这给了我data.zip

当我在我的Mac上解压缩时,我得到了

 /{archive_name}
 /{archive_name}/{files}

或在我的情况下

 /data
 /data/file_a.txt

如果我在我的Mac上重新压缩此存档,可能会发生两件事:

•如果我选择文件夹的内容,并右键点击“存档”。它们,它创建了一个档案' Archive.zip'它没有目录前缀,只有文件。这与我的python生成的归档完全兼容。

•如果我选择了该文件夹,并右键点击“存档”'那个,我的所有文件都以该目录为前缀。这与我的python生成的归档不兼容,因为文件看起来像/data/file_a.txt,而不是file_a.txt

我的应用程序创建并读取zip文件。无论给出什么方向/说明,用户都希望以两种方式压缩内容。

有没有人有一个很好的策略来支持用户可以压缩文件的两种方法,同时使用最少量的代码?

更新

我很快就上了一堂课来处理我所需的大部分操作。 https://gist.github.com/jvanasco/9770118

filenames = ZipfileNamedList(zipped.namelist())    filename_in_archive = filenames_2.has_file(' file_a.txt')

这不太理想,但我想不出更好的方法。

0 个答案:

没有答案