zipfile模块
在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模块的更多相关文章
- python笔记之ZipFile模块
python笔记之ZipFile模块 zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下, ...
- Python之路(第十八篇)shutil 模块、zipfile模块、configparser模块
一.shutil 模块 1.shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中,需要打开文件 import shutil shutil.co ...
- Python ZipFile模块详解(转)
Python zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下,我们只需要使用这两个cl ...
- Python标准库学习之zipfile模块
ZipFile模块里有两个非常重要的class, 分别是 ZipFile和ZipInfo. ZipFile是主要的类,用来创建和读取zip文件,而ZipInfo是存储的zip文件的每个文件的信息的. ...
- gzip和zipfile模块
# -*- coding: utf-8 -*- #python 27 #xiaodeng #gzip和zipfile模块 #http://www.open-open.com/lib/view/open ...
- python3中zipfile模块的常用方法
一.zipfile模块的简述 zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的, 在这里对zipfile的使用方法做一些记 ...
- Python连载13-shutile模块(续)和zipfile模块
一.shutil模块(续) 1.函数:upack_archive() (1)用法:解包操作 (2)格式:shutil.unpack_archive("归档文件地址“,”解包之后的地址“) ( ...
- python学习笔记之zipfile模块
为什么学习: 在做自动化测试平台的apk上传功能部分时候,涉及到apk上传后提取apk的icon图标,通过aapt解析apk,获取对应icon在apk中的地址,通过python的zipfile模块来解 ...
- python中zipfile模块实例化解析
文章内容由--“脚本之家“--提供,在此感谢脚本之家的贡献,该网站网址为:https://www.jb51.net/ 简介: zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是 ...
随机推荐
- springboot(三 使用mybatis +springboot 完成简单的增删改查)
先说一些注解: @EnableAutoConfiguration 可以帮助SpringBoot应用将所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器 ...
- JVM异常之:栈溢出StackOverflowError
在java虚拟机规范中,虚拟机栈和本地方法栈都会出现StackOverflowError和OutofMemoryError,程序计数器是java虚拟机中唯一一块不会产生error的内存区域. 一.St ...
- public class的类名必须跟文件名保持一致吗?
- linux下软件安装知识整理
一.软件包安装分类源码包二进制包(RPM包,系统默认包)源码包优点1.开源 可以自由选择所需的功能 软件是编译安装,适合自己系统,更加稳定,效率更高 卸载方便 缺点 安装过程步骤较多,容易 ...
- Kaptcha
Kaptcha:google自动生成验证码组件 kaptcha的使用比较方便,只需添加jar包依赖之后简单地配置就可以使用了 kaptcha所有配置都可以通过web.xml来完成,如果你的项目中使用了 ...
- Linux下Mysql的odbc配置
在安装配置之前,需要先大概了解一下MyODBC的架构. MyODBC体系结构建立在5个组件上,如下图所示: Driver Manager: 负责管理应用程序和驱动程序间的通信,主要功能包括:解析DSN ...
- HDFS分布式文件系统
hadoop致力于构建在廉价的商用服务器上 多副本存储策略(副本数存多少合适) 常见是数据访问方式:流式数据访问(更适合大数据的访问) 随机数据访问(更适合传统的关系型数据库的访问)
- java第一次考试
这是我们开学的第一次Java课的考试,考的我有点害怕. 老师说这是给我们在正式上课之前提个醒,确实,我明白了我在学习方面还有多大的差距,确实,就如我高中同学所说的那样,没事就应该往机房跑了. 在上个学 ...
- es6基础(7)--函数扩展
{ //有默认值的后面如果有参数必须要有默认值 function test(x,y="world"){ console.log(x,y) } test('hello');//hel ...
- Docker 核心技术与实现原理
提到虚拟化技术,我们首先想到的一定是 Docker,经过四年的快速发展 Docker 已经成为了很多公司的标配,也不再是一个只能在开发阶段使用的玩具了.作为在生产环境中广泛应用的产品,Docker 有 ...