背景我的主目录中有一些名为delivery_content. 该目录内有两个文件夹content_123和content_456。每个目录都包含一个文本文件。所以整体结构如下所示。-delivery_content -content_123/ -content_123.txt -content_456/ -content_456.txt我正在编写代码,当给定一个目录时,它将压缩它的所有内容。代码import osimport shutilfrom pathlib import Pathfrom datetime import datetimeDOWNLOAD_DIR = Path(os.getenv("HOME")) / "delivery_content"date = datetime.today().strftime("%Y-%m-%d")delivery_name = f"foo_{date}"shutil.make_archive(str(DOWNLOAD_DIR / delivery_name), "zip", str(DOWNLOAD_DIR))print("Zipping Has Complete")因此,对于上面给定的代码,我希望在 中看到 foo_todays_date.zip,DOWNLOAD_DIR当我解压缩它时,我希望看到以下内容 -content_123/ -content_123.txt -content_456/ -content_456.txt但是我看到以下内容有什么方法可以避免我的 zip 文件中包含 .zip 吗?
1 回答
MYYA
TA贡献1868条经验 获得超4个赞
问题是您将 zip 文件放入要存档的目录中。make_archive
可能正在创建一个空文件以验证它可以在开始归档之前写入目标。因此它会将空的 zip 文件视为要存档的文件。我使用该函数看到的唯一方法make_archive
是将存档文件放在要存档的目录之外,如下所示:
shutil.make_archive(str(DOWNLOAD_DIR / ".."/ delivery_name), "zip", str(DOWNLOAD_DIR))
之后您可以随时将 zip 文件移动到 DOWNLOAD_DIR 中。
添加回答
举报
0/150
提交
取消