背景
我的主目录中有一个名为delivery_content
的目录。在该目录中有两个文件夹content_123
和content_456
。每个目录都包含一个文本文件。因此,总体结构如下所示。
-delivery_content
-content_123/
-content_123.txt
-content_456/
-content_456.txt
我正在编写代码,当给定一个目录时,它将压缩它的所有内容。
码
import os
import shutil
from pathlib import Path
from datetime import datetime
DOWNLOAD_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")
因此,对于上面给定的代码,我希望在DOWNLOAD_DIR
中看到一个DOWNLOAD_DIR
,当我解压缩它时,我希望看到以下内容
-content_123/
-content_123.txt
-content_456/
-content_456.txt
然而,我看到以下几点
有什么方法可以避免在我的.zip文件中有一个.zip吗?
发布于 2020-10-28 22:52:00
问题在于,您正在将zip文件放入正在归档的目录中。make_archive
可能正在创建一个空文件,以验证它可以在开始存档之前写入目标。因此,它将空zip文件视为要存档的文件。使用make_archive
函数的唯一方法是将归档文件放在目录之外存档,如下所示:
shutil.make_archive(str(DOWNLOAD_DIR / ".."/ delivery_name), "zip", str(DOWNLOAD_DIR))
之后,始终可以将zip文件移动到DOWNLOAD_DIR中。
https://stackoverflow.com/questions/64580069
复制相似问题