如何解压缩 zip 文件并将文件复制到不同的不同文件夹中?

Posted

技术标签:

【中文标题】如何解压缩 zip 文件并将文件复制到不同的不同文件夹中?【英文标题】:How to unzip a zip file and copy the files into different different folders? 【发布时间】:2019-09-26 17:49:59 【问题描述】:

我想解压缩一个 zip 文件并想将各个文件复制到不同的不同文件夹中。

举个例子,我有一个名为“Feeds.zip”的 zip 文件。我有3个文件名A,B,C。我想将这3个文件分别复制到不同的文件夹A1、B1、C1中。

我已经编写了以下代码来解压缩文件并知道如何提取所有文件。但如前所述,我的要求有点不同。

with zipfile.ZipFile('C:/Feeds.zip', "r") as z:
    z.extractall("C:/Desktop/")

请帮忙。

【问题讨论】:

【参考方案1】:

不要使用extractall,而是使用namelist 来获取所有成员的名称,然后遍历它们并使用extract(member, path) 将它们提取到您想要的任何路径。

在您的示例中:(文件夹字面意思A1,B1,C1

import os.path
with zipfile.ZipFile('C:/Feeds.zip', "r") as z:
    for member in z.namelist():
        dirname = os.path.basename(member) + "1"
        z.extract(member, dirname)

如果文件有扩展名并且您不希望它们出现在文件夹名称中,请使用dirname = os.path.basename(member).split('.')[0] + "1"

当然,您可以将 dirname 替换为每个文件所需的任何其他文件夹/路径。例如,如果您已经有一个要保存文件的路径数组,则可以这样做

for member,path in zip(z.namelist(), paths):
        z.extract(member, path)

【讨论】:

很高兴我能帮上忙。如果我的回答有效,请考虑accepting it and voting it up。

以上是关于如何解压缩 zip 文件并将文件复制到不同的不同文件夹中?的主要内容,如果未能解决你的问题,请参考以下文章

使用 -jr 标志创建的 zip 在 macOS 上的解压缩方式不同,当双击与运行解压缩时

PHP解压缩zip并将内容插入数据库

解压缩并将内容推送到表格视图中

Linux解压缩文件

PHP 用于上载ZIP文件并将其解压缩到服务器上的脚本

如何在 C# 中解压缩多层 zip 文件