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 文件重命名工具代码
Jul 26 Python
videocapture库制作python视频高速传输程序
Dec 23 Python
python发布模块的步骤分享
Feb 21 Python
在Python中使用mongoengine操作MongoDB教程
Apr 24 Python
TensorFlow安装及jupyter notebook配置方法
Sep 08 Python
numpy.random.seed()的使用实例解析
Feb 03 Python
python分批定量读取文件内容,输出到不同文件中的方法
Dec 08 Python
python过滤中英文标点符号的实例代码
Jul 15 Python
Python面向对象之多态原理与用法案例分析
Dec 30 Python
Python3 实现爬取网站下所有URL方式
Jan 16 Python
Python单例模式的四种创建方式实例解析
Mar 04 Python
Anaconda配置各版本Pytorch的实现
Aug 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
PHP实现图片裁剪、添加水印效果代码
2014/10/01 PHP
[原创]php简单防盗链验证实现方法
2016/07/09 PHP
PHP中类属性与类静态变量的访问方法示例
2016/07/13 PHP
Js切换功能的简单方法
2010/11/23 Javascript
JS判断元素为数字的奇异写法分享
2012/08/01 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
详解JavaScript的表达式与运算符
2015/11/30 Javascript
浅谈js图片前端预览之filereader和window.URL.createObjectURL
2016/06/30 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
原生js封装的一些jquery方法(详解)
2016/09/20 Javascript
Bootstrap选项卡动态切换效果
2016/11/28 Javascript
html判断当前页面是否在iframe中的实例
2016/11/30 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
基于zepto.js实现登录界面
2017/10/09 Javascript
javascript中join方法实例讲解
2019/02/21 Javascript
微信小程序实现下拉刷新动画
2019/06/21 Javascript
vue 解决移动端弹出键盘导致页面fixed布局错乱的问题
2019/11/06 Javascript
Python最基本的数据类型以及对元组的介绍
2015/04/14 Python
python 爬取微信文章
2016/01/30 Python
Python实现运行其他程序的四种方式实例分析
2017/08/17 Python
Django基于ORM操作数据库的方法详解
2018/03/27 Python
使用CodeMirror实现Python3在线编辑器的示例代码
2019/01/14 Python
Python设计模式之建造者模式实例详解
2019/01/17 Python
anaconda如何查看并管理python环境
2019/07/05 Python
使用pickle存储数据dump 和 load实例讲解
2019/12/30 Python
python代码区分大小写吗
2020/06/17 Python
Python3如何在服务器打印资产信息
2020/08/27 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
捷克移动配件网上商店:ProMobily.cz
2019/03/15 全球购物
Guess欧洲官网:美国服饰品牌
2019/08/06 全球购物
init进程的作用
2012/04/12 面试题
先进个人获奖感言
2014/01/24 职场文书
书香校园活动方案
2014/02/28 职场文书
个人安全生产承诺书
2014/05/22 职场文书
12.4全国法制宣传日活动方案
2014/11/02 职场文书