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标准库之循环器(itertools)介绍
Nov 25 Python
Python的__builtin__模块中的一些要点知识
May 02 Python
python 时间戳与格式化时间的转化实现代码
Mar 23 Python
python基础教程之分支、循环简单用法
Jun 16 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
详解django中使用定时任务的方法
Sep 27 Python
python opencv摄像头的简单应用
Jun 06 Python
pytorch numpy list类型之间的相互转换实例
Aug 18 Python
python 利用jinja2模板生成html代码实例
Oct 10 Python
Python如何对齐字符串
Jul 30 Python
python 多态 协议 鸭子类型详解
Nov 27 Python
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
Jun 21 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
兼容firefox,chrome的网页灰度效果
2011/08/08 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
Zend Framework动作助手Url用法详解
2016/03/05 PHP
php查找字符串中第一个非0的位置截取
2017/02/27 PHP
javascript 拖放效果实现代码
2010/01/22 Javascript
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
基于jquery的不规则矩形的排列实现代码
2012/04/16 Javascript
js 手机号码合法性验证代码集合
2012/09/29 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
TableSort.js表格排序插件使用方法详解
2017/02/10 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
详解Nodejs之npm&amp;package.json
2017/06/15 NodeJs
vue组件三大核心概念图文详解
2019/05/30 Javascript
vue vant Area组件使用详解
2019/12/09 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
PyCharm在win10的64位系统安装实例
2017/11/26 Python
ipython和python区别详解
2019/06/26 Python
python频繁写入文件时提速的方法
2019/06/26 Python
在django view中给form传入参数的例子
2019/07/19 Python
python字符串的拼接方法总结
2019/11/18 Python
Django接收照片储存文件的实例代码
2020/03/07 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
在Python中实现字典反转案例
2020/12/05 Python
英国袜子店:Sock Shop
2017/01/11 全球购物
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
韩国商务邀请函
2014/01/14 职场文书
旷课检讨书3000字
2014/02/04 职场文书
暑假社会实践心得体会
2014/09/02 职场文书
求职信内容一般写什么?
2015/03/20 职场文书
2016年植树节红领巾广播稿
2015/12/17 职场文书
2016年先进教师个人事迹材料
2016/02/26 职场文书
Python实现的扫码工具居然这么好用!
2021/06/07 Python