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 StringIO模块实现在内存缓冲区中读写数据
Apr 08 Python
轻松理解Python 中的 descriptor
Sep 15 Python
Selenium 模拟浏览器动态加载页面的实现方法
May 16 Python
python 循环读取txt文档 并转换成csv的方法
Oct 26 Python
对python产生随机的二维数组实例详解
Dec 13 Python
Python Cookie 读取和保存方法
Dec 28 Python
python下载微信公众号相关文章
Feb 26 Python
Python批量查询关键词微信指数实例方法
Jun 27 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
Dec 13 Python
基于Python和PyYAML读取yaml配置文件数据
Jan 13 Python
python模拟斗地主发牌
Apr 22 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
Jun 29 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
DOM XPATH获取img src值的query
2013/09/23 PHP
php算法实例分享
2015/07/14 PHP
在JS中最常看到切最容易迷惑的语法(转)
2010/10/29 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
jQuery实现为图片添加镜头放大效果的方法
2015/06/25 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
vue.js中toast用法及使用toast弹框的实例代码
2018/08/27 Javascript
vue实现双向绑定和依赖收集遇到的坑
2018/11/29 Javascript
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
python黑魔法之编码转换
2016/01/25 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
2016/06/28 Python
Python中str is not callable问题详解及解决办法
2017/02/10 Python
使用Eclipse如何开发python脚本
2018/04/11 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
flask框架url与重定向操作实例详解
2020/01/25 Python
从0到1使用python开发一个半自动答题小程序的实现
2020/05/12 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
草莓巧克力:Shari’s Berries
2017/02/07 全球购物
德国帽子专家:Hutshopping
2019/11/03 全球购物
给老婆的保证书范文
2014/04/28 职场文书
主题教育活动总结
2014/05/05 职场文书
高中生国庆节演讲稿范文2014
2014/09/21 职场文书
2014镇党委班子对照检查材料思想汇报
2014/09/23 职场文书
个人委托书如何写
2014/09/25 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
会计求职简历自我评价
2015/03/10 职场文书
2015年监理个人工作总结
2015/05/23 职场文书
中学教师读书笔记
2015/07/01 职场文书
2015年治庸问责工作总结
2015/07/27 职场文书
婚礼长辈答谢词
2015/09/29 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
Java无向树分析 实现最小高度树
2022/04/09 Javascript