针对已有的压缩文件,使用zipfile,基本上都可以一键解压(rar,zip,tar,apk)等,在很多的文件上,并没有涉及可以解压APK文件没有涉及相关的代码,但是经过实际的检验,是可以一键解压的。
在很多已有的博客上,我看到了很多是对zipfile 的方法介绍,并没有实际的代码来验证,这样对我实际工作的开展,也造成了效率的降低,因为我自己根本看不出来哪里不对呀!
放上我自己完整的代码:
def un_zip(file_name):
"""unzip zip file"""
# 只解压META-INF
zip_file = zipfile.ZipFile(file_name)
if os.path.isdir(file_name + "_files"):
pass
else:
os.mkdir(file_name + "_files")
# new_path = os.path.join(file_name + "_files", names)
for names in zip_file.namelist():
if names.endswith(".RSA"):
zip_file.extract(names, file_name + "_files")#在这个路径搞了一堆坑,解压了好多层文件出来
zip_file.close()
return file_name + "_files"if __name__ == "__main__": file_path = r"C:\Users\z84105433\Desktop\test\1\com.whatsapp.apk" print(un_zip(file_path))
可以看到在相应的文件夹下面解压出来了相应要解压的文件,如果你想解压所有的文件,那就在for循环下面,遍历所有文件即可满足
zip_file.extract(names, file_name + "_files/")