从多个Zips中提取相同的文件(名称)并将其存储为Zip Name = File Name(Python)

时间:2019-01-05 11:34:48

标签: python

一个文件夹中有1000多个zip文件。所有拉链都具有相同的结构。目的是从所有zip中抓取A.zip/folder/meta.xls并将其存储为A.xls,B.xls,C.xls .....等。

我是python的新手,所以我尝试构建下面提到的代码。但是,它只是创建meta / file / meta.xls。

from zipfile import ZipFile
import os
files = os.listdir()
for file in files:
    with ZipFile(file,'r') as zip:
        zip.extract('meta/meta.xls','meta/file')

我认为我在'zip.extract('meta / meta.xls','meta / file')中犯错了,因为我得到的唯一meta.xls是列表'files'中的最后一个项目

1 个答案:

答案 0 :(得分:1)

您的代码只是覆盖文件,因为它们具有相同的名称。您需要重命名每个文件。

from zipfile import ZipFile
import os
files = os.listdir()
for file in files:
    with ZipFile(file,'r') as zip:
        zip.extract('meta/meta.xls','meta/file')
        os.rename('meta/file/meta.xls', file.split('.')[0] + '.xls')

您现在应该有很多不同的xls文件,每个文件都称为zip文件,可以从中提取内容。