使用Python压缩Mac应用程序包

时间:2012-02-22 02:55:37

标签: python macos zip bundle

我正在编写一个Python(2.7)脚本来构建和分发我的Mac(10.7)应用程序。我想将其压缩以便分发,但以下代码会产生一个空的压缩应用程序(0字节):

from zipfile import ZipFile

with ZipFile(zip_file_dist_path, 'w') as dist_zip:
    dist_zip.write(archived_app, os.path.basename(archived_app))

当我需要将其视为目录时,它是否将其视为文件?如果我通过遍历应用程序包的目录树并将每个文件写入zip来压缩它,它是否会解压缩所有正确的文件系统元数据(即我会找回一个合适的应用程序)?

2 个答案:

答案 0 :(得分:2)

我从ZipFile切换到shutil.make_archive,因为它会处理目录递归,而且我不需要任何更细粒度的控件:

import shutil

zip_file_path = shutil.make_archive(zip_file_build_path, 'zip', root_dir = dist_dir);

答案 1 :(得分:1)

ZipFile只将一个文件压缩到一个存档一次。

您可以在此处找到如何将文件夹添加到zip文件: Adding folders to a zip file using python