定义了一个名为unzip_files
的函数,用于批量解压指定文件夹内所有.zip
格式的压缩包文件。该函数的输入参数为文件夹路径(folder_path
)。函数中主要使用os
和zipfile
模块实现以下功能:
- 使用
os.listdir
获取指定文件夹内的所有文件和文件夹。- 遍历所有文件,使用
zipfile.is_zipfile
判断每个文件是否为.zip
格式的压缩包。- 如果当前文件是压缩包,则首先使用
os.path.splitext
将其解压目标文件夹名从文件名中提取出来,然后使用os.makedirs
创建该文件夹(如果已存在则忽略)。- 使用
zipfile.ZipFile
打开压缩包文件,并使用extractall
方法将其解压到目标文件夹中。- 如果当前文件不是压缩包,则输出一条非压缩文件的提示信息。
import os
import zipfile
def unzip_files(folder_path):
# 获取文件夹内所有文件
files = os.listdir(folder_path)
for file in files:
file_path = os.path.join(folder_path, file)
# 判断文件是否为压缩包
if zipfile.is_zipfile(file_path):
print(f"正在解压文件: {file}")
# 创建解压目标文件夹
target_folder = os.path.splitext(file_path)[0]
os.makedirs(target_folder, exist_ok=True)
# 解压文件
with zipfile.ZipFile(file_path, 'r') as zip_ref:
zip_ref.extractall(target_folder)
print(f"解压完成: {file}")
else:
print(f"非压缩文件: {file}")
# 指定要解压的文件夹路径
folder_path = 'path/to/folder'
unzip_files(folder_path)