在python中操作zip文件, 基本上都是使用zipfile模块,他可以创建、解压文件,获取zip文件的元数据信息。
我们想要操作一个zip文件,第一步就是初始化ZipFile实例。

1、打开test.zip文件。

import zipfile
filename = zipfile.ZipFile('test.zip')

2、解压文件

目前我们只是传入一个参数地址,实例化了一个对象,想要解压文件还要是要到extractall方法,
三个参数,path是解压的路径(默认为解压文件所在路径),members是需要解压出来的文件(默认为全部文件),pwd是密码。

filename.extractall(pwd=password.encode('ascii'))
或filename.extractall(pwd=str.encode(password))

因为在python3中pwd需要的是byte,所以需要自行解码

3、查看压缩文件中的文件列表

假设密码是xyz
filename = zipfile.ZipFile('G:/python/code/test.zip','r')
filename.extractall(pwd=str.encode('xyz'))
print(filename.namelist())
['test']

4、例子:通过密码字典文件破解压缩文件

import zipfile

#定义使用密码打开文件的函数
def setpass(filename,password):
try:
filename.extractall(pwd=str.encode(password))
return password #如果密码正确,则返回密码
except Exception as e:
pass #定义暴力破解函数
def read_zipfile():
filename = zipfile.ZipFile('G:/python/code/test.zip','r') #用zipfile函数的ZipFile类定义压缩文件
file_pass = 'G:/python/code/字典-3' #定义字典文件
with open(file_pass,encoding='utf-8') as file: #打开字典文件,这里经测试encoding='utf-8'可以不写
for i in file.readlines(): #读取字典文件中的每一行
gess=setpass(filename,i.strip('\n')) #调用setpass函数,并传入文件名和密码2个参数,这里注意字典文件中每一行包括1个换行符,所以要去掉,strip('/n')可以删除i两端的换行符
if gess:
print(filename.namelist())
print('密码是:'+i)
exit(0) #如果密码正确则退出程序,或者写成break也可以
else:
print('正在尝试:'+i) if __name__=='__main__':
read_zipfile()

zipfile模块的更多相关文章

  1. python笔记之ZipFile模块

    python笔记之ZipFile模块 zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下, ...

  2. Python之路(第十八篇)shutil 模块、zipfile模块、configparser模块

    一.shutil 模块 1.shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中,需要打开文件 import shutil shutil.co ...

  3. Python ZipFile模块详解(转)

    Python zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下,我们只需要使用这两个cl ...

  4. Python标准库学习之zipfile模块

    ZipFile模块里有两个非常重要的class, 分别是 ZipFile和ZipInfo. ZipFile是主要的类,用来创建和读取zip文件,而ZipInfo是存储的zip文件的每个文件的信息的. ...

  5. gzip和zipfile模块

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #gzip和zipfile模块 #http://www.open-open.com/lib/view/open ...

  6. python3中zipfile模块的常用方法

    一.zipfile模块的简述 zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的, 在这里对zipfile的使用方法做一些记 ...

  7. Python连载13-shutile模块(续)和zipfile模块

    一.shutil模块(续) 1.函数:upack_archive() (1)用法:解包操作 (2)格式:shutil.unpack_archive("归档文件地址“,”解包之后的地址“) ( ...

  8. python学习笔记之zipfile模块

    为什么学习: 在做自动化测试平台的apk上传功能部分时候,涉及到apk上传后提取apk的icon图标,通过aapt解析apk,获取对应icon在apk中的地址,通过python的zipfile模块来解 ...

  9. python中zipfile模块实例化解析

    文章内容由--“脚本之家“--提供,在此感谢脚本之家的贡献,该网站网址为:https://www.jb51.net/ 简介: zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是 ...

随机推荐

  1. OpenStack存储(单节点)

    一.OpenStack Swift对象存储 1.安装Swift服务 在controller节点依次执行iaas-install-swift-controller.sh和iaas-install-swi ...

  2. 02-zip文件打包

    package com.day1; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStre ...

  3. 有关Set集合的一个小问题

    先看两段代码: Demo1: Set<Short>s=new HashSet<>(); for(Short i=0;i<100;i++){ s.add(i); s.rem ...

  4. for循环.html

    <script> for (var i = 1; i < 5 ; i++) { alert(i); } 公式需要记住,并多加练习,加深记忆,注意编写格式 for (var i = 1 ...

  5. ElasticSearch索引

    简介 索引是具有相同结构的文档集合.在Elasticsearch中索引是个非常重要的内容,对Elasticsearch的大部分操作都是基于索引来完成的.同时索引可以类比关系型数据库Mysql中的数据库 ...

  6. tp3.2sql改变时间格式

    tp3.2sql改变时间格式2018-05-10取05-10 $listIn=D('api_article as a')->field('date_format( fabutime,\'%m-% ...

  7. Java捕获异常的问题

    ---恢复内容开始--- 在Java编译过程中,有时候会出现输入未按照规定输入的情况,此时需要警告用户输入错误,这就会是程序运行过程中出现异常.异常就是可预测但是又没办法消除的一种错误.所以在编写过程 ...

  8. underscore函数存在两种用法

    var _ = require('underscore'); var a = {"a": 1, "b": 2}; console.log(_(a).size() ...

  9. spring事务传播实现源码分析

    转载. https://blog.csdn.net/qpfjalzm123/article/details/83717367 本文只是对spring事务传播实现的流程进行简单的分析,如有不对之处请指出 ...

  10. [转]C# 安装与部署

    部署 Windows 应用程序 本演练演示为启动记事本的 Windows 应用程序创建一个安装程序的过程.在本演练中,您将首先创建一个 Windows 应用程序,然后创建一个安装程序:以便在安装过程中 ...