下面是详细的讲解:
标题
首先,在撰写本文的时候,为了更好的呈现代码,我们应该添加代码块、标题等元素来进行标识。
代码块
在Markdown中插入代码块,可以使用三个反引号或者四个空格 + 相应的编程语言。
import zipfile
import os
# 解压zip文件
def unzip_file(zip_src, dst_dir):
r = zipfile.is_zipfile(zip_src)
if r:
fz = zipfile.ZipFile(zip_src, 'r')
for file in fz.namelist():
fz.extract(file, dst_dir)
else:
print('This is not a Zip file')
unzip_file('./data.zip', './data')
标题
在Markdown中插入标题,可以使用 # 符号,一个 # 符号代表一级标题,两个 # 符号代表二级标题,以此类推。
一级标题
二级标题
针对该话题的回答
批量解压zip文件
Python中,可以使用zipfile库解压zip文件。假设我们有一个文件夹,其中包含了多个zip文件,我们如何用Python批量解压这些zip文件呢?有个非常方便的方式就是使用os.walk()函数来遍历该文件夹下的所有zip文件,然后对每个zip文件进行解压。
import zipfile
import os
# 获取当前目录下所有zip文件
def get_all_zip_files(dir_path):
all_files = []
for root, dirs, files in os.walk(dir_path):
for file in files:
if file.endswith('.zip'):
all_files.append(os.path.join(root, file))
return all_files
# 批量解压zip文件
def unzip_all_files(root_path):
all_zip_files = get_all_zip_files(root_path)
for zip_file in all_zip_files:
fz = zipfile.ZipFile(zip_file, 'r')
fz.extractall(os.path.join(root_path, 'unzip'))
print('Unzip all files Done!')
unzip_all_files('./data')
在上面的代码中,我们定义了两个函数,一个是获取当前目录下的所有zip文件,一个是批量解压zip文件。其中,get_all_zip_files函数中,我们使用了os.walk()函数来遍历当前目录以及所有子目录。对于每个zip文件,我们都通过os.path.join()函数来获取其完整路径,并将其添加到all_files列表中。在unzip_all_files函数中,我们首先调用了get_all_zip_files函数来获取所有zip文件,然后使用zipfile.ZipFile()函数来打开zip文件,最后使用fz.extractall()函数来解压文件。
另外,假设我们只想解压指定的zip文件,可以直接在代码中指定需要解压的文件名。
import zipfile
# 解压指定zip文件
def unzip_single_file(zip_src, dst_dir):
fz = zipfile.ZipFile(zip_src, 'r')
for file in fz.namelist():
fz.extract(file, dst_dir)
unzip_single_file('./data.zip', './data')
在上面的代码中,我们定义了一个unzip_single_file函数,我们传入两个参数,一个是要解压的zip文件路径,一个是解压到哪个目录。我们首先使用zipfile.ZipFile()函数来打开zip文件,然后遍历zip文件中的所有文件,使用fz.extract()函数来解压文件到指定目录中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python批量解压zip文件的方法 - Python技术站