Python压缩解压缩zip文件及破解zip文件密码的方法


Posted in Python onNovember 04, 2015

python 的 zipfile 提供了非常便捷的方法来压缩和解压 zip 文件。

例如,在py脚本所在目录中,有如下文件:

readability/readability.js
readability/readability.txt
readability/readability-print.css
readability/sprite-readability.png
readability/readability.css

将 readability 目录中的文件压缩到脚本所在目录的 readability.zip 文件中,保持相同的文件结构,然后打印出生成的压缩包 的文件列表,再用两种方式分别解压文件到脚本所在目录的 output 目录和 output/bak 目录中。

脚本如下:

#!/usr/vin/env python
# coding: utf-8
"""
压缩和解压zip文件
"""

import os
import zipfile

def compress(zip_file, input_dir):
  f_zip = zipfile.ZipFile(zip_file, 'w')
  for root, dirs, files in os.walk(input_dir):
    for f in files:
      # 获取文件相对路径,在压缩包内建立相同的目录结构
      abs_path = os.path.join(os.path.join(root, f))
      rel_path = os.path.relpath(abs_path, os.path.dirname(input_dir))
      f_zip.write(abs_path, rel_path, zipfile.ZIP_STORED)

def extract(zip_file, output_dir):
  f_zip = zipfile.ZipFile(zip_file, 'r')

  # 解压所有文件到指定目录
  f_zip.extractall(output_dir)

  # 逐个解压文件到指定目录
  for f in f_zip.namelist():
    f_zip.extract(f, os.path.join(output_dir, 'bak'))

def printdir(zip_file):
  f_zip = zipfile.ZipFile(zip_file, 'r')
  print '== printdir() ============================'
  f_zip.printdir()
  print
  print '== namelist() ============================'
  for f in f_zip.namelist():
    print f

if __name__ == '__main__':
  zip_file = 'readability.zip'
  compress(zip_file, os.path.join(os.getcwd(), 'readability'))
  printdirzip_file)
  extract(zip_file, 'output')</pre>

python暴力破解含密码的zip压缩文件
思路:

1.先自己生成一份txt的密码字典

2.然后读取出来,一个个的尝试,当密码错误是,程序会报错中断,所以密码错误,要使用pass

3.当解压缩成功后,中断程序,输出正确密码

import zipfile
import os
from threading import Thread
import time
#压缩文件的路径
path = r'C:\Users\Administrator\Desktop\moeMaid-master.zip'
#password='1234'

def pojie_zip(path,password):
 if path[-4:]=='.zip':
  #path = dir+ '\\' +file
  #print path
  zip = zipfile.ZipFile(path, "r",zipfile.zlib.DEFLATED)
  #print zip.namelist()
  try:
   #若解压成功,则返回True,和密码
   zip.extractall(path='C:\\Users\\Administrator\\Desktop\\',members=zip.namelist() , pwd=password)
   print ' ----success!,The password is %s' % password
   zip.close()
   return True
  except:
   pass #如果发生异常,不报错
  print 'error'
  
  
def get_pass():
 #密码字典的路径
 passPath='C:\\Users\\Administrator\\Desktop\\zip.txt'
 passFile=open(passPath,'r')
 for line in passFile.readlines():
  password=line.strip('\n')
  print 'Try the password %s' % password
  if pojie_zip(path,password):
   break
 passFile.close()
if __name__=='__main__':
 start=time.clock()
 get_pass()
 print "done (%.2f seconds)" % (time.clock() - start)

Python压缩解压缩zip文件及破解zip文件密码的方法

这是我解压缩一个5.4M文件的速度,其实时间都花在了解压缩上了

Python 相关文章推荐
Python配置文件解析模块ConfigParser使用实例
Apr 13 Python
Python语言的变量认识及操作方法
Feb 11 Python
10分钟教你用Python实现微信自动回复功能
Nov 28 Python
python使用Plotly绘图工具绘制水平条形图
Mar 25 Python
Django web框架使用url path name详解
Apr 29 Python
python KNN算法实现鸢尾花数据集分类
Oct 24 Python
python 基于dlib库的人脸检测的实现
Nov 08 Python
Django连接数据库并实现读写分离过程解析
Nov 13 Python
TensorFlow tf.nn.conv2d实现卷积的方式
Jan 03 Python
Django如何重置migration的几种情景
Feb 24 Python
在Windows下安装配置CPU版的PyTorch的方法
Apr 02 Python
利用python调用摄像头的实例分析
Jun 07 Python
python通过文件头判断文件类型
Oct 30 #Python
python制作花瓣网美女图片爬虫
Oct 28 #Python
python制作最美应用的爬虫
Oct 28 #Python
python使用wmi模块获取windows下的系统信息 监控系统
Oct 27 #Python
详解JavaScript编程中的window与window.screen对象
Oct 26 #Python
深入讲解Python中的迭代器和生成器
Oct 26 #Python
Windows下使Python2.x版本的解释器与3.x共存的方法
Oct 25 #Python
You might like
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
php实现的css文件背景图片下载器代码
2014/11/11 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
js 小数取整的函数
2010/05/10 Javascript
js怎么终止程序return不行换jfslk
2013/05/30 Javascript
Javascript中判断变量是数组还是对象(array还是object)
2013/08/14 Javascript
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
2015/03/13 Javascript
JavaScript中的fontsize()方法使用详解
2015/06/08 Javascript
js贪吃蛇游戏实现思路和源码
2016/04/14 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
2016/10/09 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
JS实现简单的浮动碰撞效果示例
2017/12/28 Javascript
node后端服务保活的实现
2019/11/10 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
Python内置的字符串处理函数整理
2013/01/29 Python
Python中3种内建数据结构:列表、元组和字典
2014/11/30 Python
用Python实现web端用户登录和注册功能的教程
2015/04/30 Python
Python抓取框架 Scrapy的架构
2016/08/12 Python
解决python "No module named pip" 的问题
2018/10/13 Python
windows10下安装TensorFlow Object Detection API的步骤
2019/06/13 Python
python中栈的原理及实现方法示例
2019/11/27 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
2020/04/12 Python
Python新手如何理解循环加载模块
2020/05/29 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
竞选班长演讲稿
2013/12/30 职场文书
周年庆促销方案
2014/03/15 职场文书
优秀毕业生求职信
2014/06/05 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
领导干部“四风”查摆问题个人整改措施
2014/10/28 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书
话题作文之生命的旋律
2019/12/17 职场文书
Python基础之教你怎么在M1系统上使用pandas
2021/05/08 Python
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers