python-3.x 在以下文件夹/目录中找到一个带有zip的文件名,并将其解压缩到同一目录中的新文件夹中?

t0ybt7op  于 2023-06-07  发布在  Python
关注(0)|答案(2)|浏览(170)

我使用os.walk()将文件列表获取到DataFrame。现在我想从DataFrame中的文件列表中提取zip文件夹。

DataFrame

file_name   base_name extension    absolute_path                  rel_path
file_1.pdf  file_1     pdf      C:\\temp\documents\file_1.pdf   \file_1.pdf
file_2.zip  file_2     zip      C:\\temp\documents\file_2.zip   \file_2.zip
file_3.7z   file_3     7z       C:\\temp\documents\file_3.7z    \file_3.7z
file_4.tar  file_4     tar      C:\\temp\documents\file_4.tar   \file_4.tar

1.我正在使用python shutil包来提取/解压缩内容。我该怎么做?
1.我也在寻找其他文件格式(. 7z,.tar)以及在同一目录下,如果他们可用。
1.解压缩的文件夹也应该在相同的目录中具有相同的名称。
注:不能更改用于浸提的 Package 。只有shutil包。

eqqqjvef

eqqqjvef1#

打开压缩文件夹的替代方法是ZiFile。您必须使用pip install或任何其他安装程序(例如conda)安装库。
导入列表用于代码为

import os
import fnmatch  
from zipfile import ZipFile

新代码:

dirPath = 'C:\\temp' #Windows format
formats = ['*.zip','*.tar','*.7z']

for f in formats:
    for file in os.listdir(dirPath):
        if fnmatch.fnmatch(file,f):
            os.chdir(dirPath) #change where to open zipFile
            with ZipFile(file,'r') as zfiles:
                flist = zfiles.namelist()
                for zipped in flist:
                    zfiles.extract(zipped,dirPath)

如果要提取到其他目录,请更改行中的变量dirPath:

zfiles.extract(zipped,dirPath)
6ss1mwsb

6ss1mwsb2#

导入压缩文件
zip_content = zipfile.ZipFile(“zip文件路径”)
namelist = zip_content.namelist()
file_extracted =“”
对于名称列表中的项目:

if "exact_file_name.ext" in item:

    file_extracted = zip_content.open(str(item))

尝试:

data_content = file_extracted.read()

fileout = open("path to save", 'wb')

fileout.write(data_content)

fileout.close()

除了:

pass

相关问题