解压是常见的操作,但有时需要对多个压缩文件批量解压,这时可以使用python进行自动化解压。本文将从多个角度介绍如何使用python解压目录。
一、使用python zipfile模块解压单个文件
通过import zipfile导入zipfile模块,使用该模块的zipfile.ZipFile(filename[,mode[,compression[,allowZip64]]])方法打开要解压的文件,然后使用zipfile对象的extractall([path[,members[,pwd]]])方法解压文件。示例代码如下:
import zipfile
zip_file = zipfile.ZipFile('test.zip')
zip_file.extractall()
zip_file.close()
二、使用python zipfile模块解压整个目录
在解压多个压缩文件时,可以使用os模块遍历整个目录,通过判断文件类型来筛选出所有需要解压的压缩文件地址,并用zipfile模块解压。示例代码如下:
import os
import zipfile
def unzip_all_files_in_path(path):
for root, dirs, files in os.walk(path):
for file in files:
if file.endswith('.zip'):
filepath = os.path.join(root,file)
zip_file = zipfile.ZipFile(filepath)
zip_file.extractall()
zip_file.close()
unzip_all_files_in_path('test')
三、使用python shutil模块解压整个目录
shutil模块还提供了解压tar、tar.gz、tar.bz2、zip等多种压缩文件的方法,使用其中的shutil.unpack_archive(filename,extract_dir=None,format=None)方法,我们可以方便地解压整个目录下的所有压缩文件。示例代码如下:
import shutil
path = 'test'
for filename in os.listdir(path):
filepath = os.path.join(path, filename)
if os.path.isfile(filepath):
shutil.unpack_archive(filepath)
四、使用python 7zip解压文件
python中还有一个第三方包py7zr,可以用于解压7z文件,使用比较简洁。示例代码如下:
import py7zr
with py7zr.SevenZipFile('test.7z', mode='r') as z:
z.extractall()
摘要:本文介绍了如何使用python解压目录,详细介绍了使用zipfile模块解压单个文件、解压整个目录,使用shutil模块和py7zr模块解压整个目录,是python爬虫和办公自动化中常用的技巧之一。
关键词:python解压、zipfile模块、shutil模块、py7zr模块、自动化解压