首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在下面的文件夹/目录中找到一个具有zip的文件名,并将其解压缩到同一个目录中的一个新文件夹中?

在下面的文件夹/目录中找到一个具有zip的文件名,并将其解压缩到同一个目录中的一个新文件夹中?
EN

Stack Overflow用户
提问于 2019-11-08 12:10:06
回答 1查看 955关注 0票数 0

我使用os.walk()将文件列表发送到DataFrame。现在,我想从DataFrame中的文件列表中提取压缩文件夹。

代码语言:javascript
复制
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. I使用python包提取/解压缩内容。我如何做到这一点?
  2. 我也在寻找其他文件格式(.7z,.tar),以及在同一个目录中,如果它们可用的话。
  3. 提取的文件夹也应该位于同名的目录中。

注意:不能更改提取所用的包。只有shutil包裹。

EN

回答 1

Stack Overflow用户

发布于 2019-11-08 13:53:06

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

导入列表是用于代码的

代码语言:javascript
复制
import os
import fnmatch  
from zipfile import ZipFile

新代码:

代码语言:javascript
复制
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) 

如果要提取到不同的dir,请更改行中的变量dirPath:

代码语言:javascript
复制
zfiles.extract(zipped,dirPath)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58766342

复制
相关文章

相似问题

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