首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ZipFile在ZipFile (Python)中

ZipFile在ZipFile (Python)中
EN

Stack Overflow用户
提问于 2020-10-28 19:31:35
回答 1查看 47关注 0票数 0

背景

我的主目录中有一个名为delivery_content的目录。在该目录中有两个文件夹content_123content_456。每个目录都包含一个文本文件。因此,总体结构如下所示。

代码语言:javascript
运行
复制
-delivery_content
 -content_123/
   -content_123.txt
 -content_456/
   -content_456.txt

我正在编写代码,当给定一个目录时,它将压缩它的所有内容。

代码语言:javascript
运行
复制
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,当我解压缩它时,我希望看到以下内容

代码语言:javascript
运行
复制
 -content_123/
   -content_123.txt
 -content_456/
   -content_456.txt

然而,我看到以下几点

有什么方法可以避免在我的.zip文件中有一个.zip吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-28 22:52:00

问题在于,您正在将zip文件放入正在归档的目录中。make_archive可能正在创建一个空文件,以验证它可以在开始存档之前写入目标。因此,它将空zip文件视为要存档的文件。使用make_archive函数的唯一方法是将归档文件放在目录之外存档,如下所示:

代码语言:javascript
运行
复制
shutil.make_archive(str(DOWNLOAD_DIR / ".."/ delivery_name), "zip", str(DOWNLOAD_DIR))

之后,始终可以将zip文件移动到DOWNLOAD_DIR中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64580069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档