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控制台显示时钟的示例
Feb 24 Python
Python使用bs4获取58同城城市分类的方法
Jul 08 Python
Python中强大的命令行库click入门教程
Dec 26 Python
Pycharm学习教程(3) 代码运行调试
May 03 Python
Python 文件操作的详解及实例
Sep 18 Python
python中的迭代和可迭代对象代码示例
Dec 27 Python
Python selenium实现微博自动登录的示例代码
May 16 Python
python 字典中取值的两种方法小结
Aug 02 Python
Python3 assert断言实现原理解析
Mar 02 Python
Python爬虫爬取、解析数据操作示例
Mar 27 Python
Python爬虫小例子——爬取51job发布的工作职位
Jul 10 Python
Pycharm调试程序技巧小结
Aug 08 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
ThinkPHP3.1新特性之字段合法性检测详解
2014/06/19 PHP
php实现word转html的方法
2016/01/22 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
完整显示当前日期和时间的JS代码
2007/09/17 Javascript
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
jQueryUI写一个调整分类的拖放效果实现代码
2012/05/10 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
PHP+jQuery+Ajax实现多图片上传效果
2015/03/14 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
JS实现的车标图片提示效果代码
2015/10/10 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
详解微信小程序开发—你期待的分享功能来了,微信小程序序新增5大功能
2016/12/23 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
详解Layer弹出层样式
2017/08/21 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
你应该了解的JavaScript Array.map()五种用途小结
2018/11/14 Javascript
vue使用微信JS-SDK实现分享功能
2019/08/23 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
2019/08/27 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
Python简单实现子网掩码转换的方法
2016/04/13 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
2018/03/05 Python
儿童编程python入门
2018/05/08 Python
使用python 对验证码图片进行降噪处理
2019/12/18 Python
IE兼容css3圆角的实现代码
2011/07/21 HTML / CSS
CSS3与动画有关的属性transition、animation、transform对比(史上最全版)
2017/08/18 HTML / CSS
几个解决兼容IE6\7\8不支持html5标签的几个方法
2013/01/07 HTML / CSS
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
职业女性的职业规划
2014/03/04 职场文书
县级文明单位申报材料
2014/05/23 职场文书
2015年度物流工作总结
2015/04/30 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
团队执行力培训心得体会
2015/08/15 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python