首先,关于python解压缩文件的详细介绍来自:https://www.cnblogs.com/zhuminghui/p/11699313.html

解压 zip 文件

import zipfile'''
基本格式:zipfile.ZipFile(filename[,mode[,compression[,allowZip64]]])
mode:可选 r,w,a 代表不同的打开文件的方式;r 只读;w 重写;a 添加
compression:指出这个 zipfile 用什么压缩方法,默认是 ZIP_STORED,另一种选择是 ZIP_DEFLATED;
allowZip64:bool型变量,当设置为True时可以创建大于 2G 的 zip 文件,默认值 True;'''
zip_file = zipfile.ZipFile(path)
zip_list = zip_file.namelist() # 得到压缩包里所有文件for f in zip_list:zip_file.extract(f, folder_abs) # 循环解压文件到指定目录zip_file.close() # 关闭文件,必须有,释放内存

其他方法

zipfile.is_zipfile('xxx.zip') # 判断文件是否是个有效的zipfile
zipfile.namelist('xxx.zip') # 列表,存储zip文件中所有子文件的path(相对于zip文件包而言的)
zipfile.infolist('xxx.zip') # 列表,存储每个zip文件中子文件的ZipInfo对象
zipfile.printdir() # 打印输出zip文件的目录结构,包括每个文件的path,修改时间和大小
zipfile.open(name[,mode[,pwd]]) # 获取一个子文件的文件对象,可以对其进行read,readline,write等操作
zipfile.setpassword(psw),为zip文件设置默认密码
zipfile.testzip() # 读取zip中的所有文件,验证他们的CRC校验和。返回第一个损坏文件的名称,如果所有文件都是完整的就返回None
zipfile.write(filename[,arcname[,compression_type]]) # 将zip外的文件filename写入到名为arcname的子文件中(当然arcname也是带有相对zip包的路径的),打开方式为w或a
zipfile.extract(member, path=None, pwd=None) # 解压一个zip中的文件,path为解压存储路径,pwd为密码
zipfile.extractall(path[,pwd]) # 解压zip中的所有文件,path为解压存储路径,pwd为密码

解压 rar 文件

 Python 本身不支持 rar 文件的解压,需要先安装相关依赖才可使用

  • 安装 unrar 模块:pip install unrar
  • 下载安装 unrar library,网址:http://www.rarlab.com/rar/UnRARDLL.exe 按照默认安装路径安装
  • 将安装后文件夹中的 X64 文件夹加入环境变量(默认路径为 C:\Program Files (x86)\UnrarDLL\x64)
  • 系统变量中新建变量,变量名输入 UNRAR_LIB_PATH,变量值为 C:\Program Files (x86)\UnrarDLL\x64\UnRAR64.dll(32位系统下的变量值为C:\Program Files (x86)\UnrarDLL\UnRAR.dll)
  • 将 winrar 的目录下的 unrar.exe 复制到 Python 路径的 Scripts 文件夹下
  • 重启PyCharm

基本操作

rf = rarfile.RarFile(_rarfile, mode='r') # mode的值只能为'r'
rf_list = rf.namelist() # 得到压缩包里所有的文件
print('rar文件内容', rf_list)for f in rf_list:rf.extract(f, folder_abs)  # 循环解压,将文件解压到指定路径# 一次性解压所有文件到指定目录
# rf.extractall(path) # 不传path,默认为当前目录

下面说一下我解压缩rar文件遇到的问题:

安装的unrar 模块,一直无法使用。即使按照大神讲解的一步一步做好了,程序依然无法正常运行。

山重水复疑无路之时,偶然灵光一闪,unrar.exe 复制到 Python 路径的 Scripts 文件夹下——这句话意味python其实是调用的unrar的命令来解压rar文件的。

于是上网搜索,猜想得证。

于是,在命令行输入unrar 按回车显示命令帮助如下:

(注意:之前已经将winrar程序下载,并且将unrar加到了windows的环境变量PATH中,所以可以直接使用unrar命令)


UNRAR 5.91 x64 免费软件      版权所有 (C) 1993-2020 Alexander Roshal用法:     unrar <command> -<switch 1> -<switch N> <archive> <files...><@listfiles...> <path_to_extract\><Commands>e             提取文件不带压缩路径l[t[a],b]     列出压缩文档内容 [technical[all], bare]p             打印文件到 stdoutt             测试压缩文档的文件v[t[a],b]     详细列出压缩文档的内容 [technical[all],bare]x             解压文件带完整路径<Switches>-             停止参数扫描@[+]          禁用 [enable] 文件列表ac            压缩或解压后清除压缩文档属性ad            扩展压缩文档名称到目标路径ag[format]    使用当前日期生成压缩文档名称ai            忽略文件属性ap<path>      设置压缩文档内部的路径c-            禁用内容显示cfg-          禁用读取配置cl            转换名称为小写cu            转换名称为大写dh            打开共享的文件ep            从名称里排除路径ep3           扩展路径为完整路径包括驱动器盘符f             刷新文件id[c,d,p,q]   禁用消息ierr          发送所有压缩文档到 stderrinul          禁用所有消息ioff[n]       完成一个操作后关闭电脑kb            保留损坏的已解压文件n<file>       额外管理器包含文件n@            从 stdin 读取额外的过滤器掩码n@<list>      从列表文件读取额外的过滤器掩码o[+|-]        设置覆盖模式oc            设置 NTFS 压缩属性ol[a]         将符号链接处理为链接 [absolute paths]or            自动重命名文件ow            保存或恢复文件拥有者和组p[password]   设置密码p-            不要查询密码r             递归子目录ri<P>[:<S>]   设置优先级 (0-默认,1-最小.15-最大) 和休眠时间单位为 mssc<chr>[obj]  指定字符集sl<size>      处理小于指定大小的文件sm<size>      处理大于指定大小的文件ta[mcao]<d>   处理那些在日期 <d> YYYYMMDDHHMMSS 之后修改过的文件tb[mcao]<d>   处理那些在日期 <d> YYYYMMDDHHMMSS 之前修改过的文件tn[mcao]<t>   处理那些时间比 <t> 更新的文件to[mcao]<t>   处理那些时间比 <t> 更老的文件ts[m,c,a,p]   保存或恢复时间(修改日期,创建日期,访问日期,保留日期)u             更新文件v             列出所有卷ver[n]        文件版本控制vp            每个卷之前暂停x<file>       排除特定文件x@            读取文件名以便从 stdin 排除x@<list>      排除在特定列表文件里列出的文件y             对所有问题回答是

根据,以上帮助,得出rar解压命令如下:

unrar x 压缩文件 -p密码 -ad 解压路径

最后,写了一个简单的python脚本,用于爆破rar压缩文件密码:

import subprocessdef unrar(password):p = subprocess.run(r'unrar x D:\Temp\1.rar -p'+ password + r' -ad D:\Temp', shell=True)if ("returncode=11" in str(p)):return Falseelse:return Truedef baopo(filedict=r'D:\Temp\mutou.txt'):with open("log.txt","w",encoding="utf-8") as logf:with open(filedict,"r",encoding="utf-8") as f:for l in f:pwd = l.strip()if unrar(pwd):print("破解完成,密码是:",pwd)with open("password.txt","a",encoding="utf-8") as tmpf:tmpf.write(pwd)breakelse:logf.write(pwd+"\n")if __name__ == '__main__':baopo()

因为本人的rar文件密码很简单,爆破字典不大,故没有必要实现多进程、多线程,大约跑了2个小时就把自己的密码爆出来了。

欢迎大佬们继续完善代码!

使用python,爆破加密的rar压缩文件相关推荐

  1. Python unrar解压rar压缩文件

    安装 $ pip install unrar 解压 from unrar import rarfile# 源码:https://github.com/matiasb/python-unrar # 下载 ...

  2. python基础教程zip密码_python基础教程Python实现加密的RAR文件解压的方法(密码已知)...

    博主之前在网上找了很多资料,发现rarfile库不能直接调用,需要安装unrar模块,下面将详细介绍整个实现流程. 第一步:安装unrar模块,直接pip install unrar可能会找不到库,需 ...

  3. python破解加密的rar,zip文件

    一.解压zip 系统自带的zipfile库是用来操作zip文件的 而要解压加密后的zip文件,就需要用pwd参数 其实解密最重要的就是密码字典,这个字典需要你根据实际情况,自己去生成的 这里我打比方, ...

  4. rar压缩文件暴力破解

    1. 简介 rar 压缩文件资源又不少是被加密的,密码通常也比较简单,我们可以通过暴力破解的方式来获取,通常耗时也比较小. 2. 使用说明 2.1 基本语法 rar-bruteforce-crack. ...

  5. 破解rar压缩文件密码(Windows环境)

    Unrar解压rar包 最近在下载很多附件,附件中有很多的格式,.doc,.xls,rar,zip等等.在处理这些附件的时候还是遇到了很多的坑,这里记录一下,希望对后来的朋友有所帮助. Unrar解压 ...

  6. 在Linux服务器上解压rar压缩文件

    Linux服务器上不自带解压rar文件的指令,需要自行下载rar工具包. 1. 下载rar工具包(两种方法) rarlab官网:rar官网地址 一般首选这些,现在的服务器差不多都是64位的.我选的红框 ...

  7. ubuntu18.04怎么解压rar压缩文件

    ubuntu18.04怎么解压rar压缩文件 今天在自己的ubuntu18.04中得到一个rar的压缩文件,在windows下使用的winrar软件,在这里又安装不上,后来发现有一些开源的解压软件可以 ...

  8. Ubuntu下解压rar压缩文件

    在Ubuntu系统中的文件夹下或者命令行中直接解压rar压缩文件会报错,需要安装一些软件方可,安装命令如下: sudo apt-get install rar sudo apt-get install ...

  9. RAR压缩文件如何转换成ZIP格式?

    压缩文件有多种不同的格式,有时候因为需求不同,我们需要把RAR压缩文件转换成ZIP格式,那要如何操作呢?下面小编分享2种简单的方法. 方法一: 如果需要转换的RAR压缩包不是很多,我们可以直接把文件名 ...

  10. Java将指定文件/文件夹压缩成zip、rar压缩文件

    import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipOutputStream;import java.io.*; ...

最新文章

  1. 笛卡尔积 php,PHP自定义函数生成笛卡尔积
  2. 学习笔记Hadoop(十二)—— Hadoop基础操作(4)—— YARN资源管理与调度策略
  3. [leetcode]145.二叉树的后序遍历
  4. Python Pycharm Anacanda 区别
  5. 使用SDKMAN包管理器,在BSD-Unix系统上快捷安装软件(MacOS/OpenBSD/Solaris)
  6. Alibaba之MySQL宝典_Alibaba之MySQL宝典流出!极致经典,堪称行业天花板
  7. 那些不能遗忘的知识点回顾——C/C++系列(笔试面试高频题)
  8. vim介绍与一些使用方式
  9. 外行也看得懂!了解量子计算的奇迹
  10. ARM CORTEX-M3 内核架构理解归纳
  11. 腾讯云轻量应用服务器如何创建并挂载云硬盘?
  12. 两个子组件之间的传值
  13. win10家庭版使用远程桌面方法
  14. tornado完成一个简单的登录界面/图片的上传
  15. gataway 组件的健权、限流、过滤等功能分析(三十一)
  16. 曲线弧长和旋转体侧面积的计算公式
  17. openstack 对比 k8s 深度好文
  18. linux指令积累之(一)
  19. 宜人贷第四季度净营收12.71亿元 同比下滑30%
  20. 节选自《白衣飘飘的年代:宋朝那些有趣的人和事》(重庆大学出版社)

热门文章

  1. itools苹果录屏大师_如何录制ZOOM视频会议?实用的录屏软件
  2. Tkinter教程(每天半小时,3天彻底掌握Tkinter)day2
  3. 火影忍者 动漫 全集目录 分章节 精彩打斗剧集 思维导图整理
  4. TinyPNG批量智能图片压缩器无限制版(支持Mac/Win)
  5. 实用主义学python百度网盘_麻瓜编程:实用主义学Python(5套全)(火评)
  6. 疯狂的华尔街速度:千分之十三秒让高频交易员创造2千万美元
  7. js html 导出excel文件,js 导出excel ,elsx格式
  8. python贪吃蛇的实验报告_贪吃蛇游戏程序设计实验报告.doc
  9. mysql手册01_常用SQL语句大全
  10. 进程调度算法的模拟实现