我正在编写一个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来压缩它,它是否会解压缩所有正确的文件系统元数据(即我会找回一个合适的应用程序)?
答案 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