2024-05-18 07:54:13 发布
网友
我想解压一个压缩文件,并希望复制不同文件夹中的各个文件。你知道吗
举个例子,我有一个名为订阅源.zip". 因为我有3个文件名为A,B,C。我想把这3个文件分别复制到不同的文件夹A1,B1,C1。你知道吗
我已经写了下面的代码解压文件,并知道如何提取所有的文件。但正如前面提到的,我的要求有点不同。你知道吗
with zipfile.ZipFile('C:/Feeds.zip', "r") as z: z.extractall("C:/Desktop/")
请帮忙。你知道吗
与其使用extractall,不如使用namelist获取所有成员的名称,然后对它们进行迭代,并使用extract(member, path)将它们提取到所需的任何路径。你知道吗
extractall
namelist
extract(member, path)
在您的示例中:(其中文件夹是字面上的A1,B1,C1)
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 = os.path.basename(member).split('.')[0] + "1"
当然,您可以将dirname替换为每个文件所需的任何其他文件夹/路径。例如,如果您已经有了一个要保存文件的路径数组,您可以这样做
for member,path in zip(z.namelist(), paths): z.extract(member, path)
与其使用
extractall
,不如使用namelist
获取所有成员的名称,然后对它们进行迭代,并使用extract(member, path)
将它们提取到所需的任何路径。你知道吗在您的示例中:(其中文件夹是字面上的
A1
,B1
,C1
)如果文件有扩展名,而您不希望它们出现在文件夹名称中,请使用
dirname = os.path.basename(member).split('.')[0] + "1"
。你知道吗当然,您可以将dirname替换为每个文件所需的任何其他文件夹/路径。例如,如果您已经有了一个要保存文件的路径数组,您可以这样做
相关问题 更多 >
编程相关推荐