首先,代码如下:
import os
import zipfile
main_file = "D:\python视频\爬虫"
path = os.chdir(main_file)
for file in os.listdir(path):
child_file = f"{main_file}"+"\\"+file
second_file = os.listdir(child_file)
for zip_file in second_file:
if zip_file.endswith(".zip"):
third_file = child_file+"\\"+zip_file
zip_file = zipfile.ZipFile(third_file)
with zipfile.ZipFile(third_file, "r") as zipobj:
zipobj.extractall(child_file)
else:
continue
此处相当于我有两层文件夹,第一层文件夹存放了多个文件夹,二层文件夹下包含多个 `zip` 后缀的压缩包(需要被处理的对象),使用 os 模块下的 os.chdir 进行切换目录,到达指定目录(即二层目录)后对文件夹下的文件的后缀名进行判断,是 zip 则进入循环,而 zipfile.ZipFile(压缩包名) 中的压缩包名需要填写要被解压的文件,所以进行拼接,接下来相当于一个固定用法,之所以用 extractall 而不用 extract ,是因为使用 extract 需要指定解压文件存放的地址,而extractall 则直接解压到原地址(根据自己需求选择即可)。
如有描述不清楚或不懂的,可以在评论区进行讨论。
感谢观看。