ru=lambda x:x.decode('u8')
rp=lambda x:x.replace('\\','/')
gb=lambda x:x.decode('gbk')
class ZIP:
def __init__(s):
import zipfile,ntpath,listdir,appuifw
s.ZF,s.NP,s.LD,s.A=zipfile.ZipFile,ntpath,listdir,appuifw
del zipfile,ntpath,listdir,appuifw
s.list,s.zip=[ru('请选择文件')],None
s.oldbody=s.A.app.body
s.A.app.body=s.LIST=s.A.Listbox(s.list)
s.menu()
s.L=s.A.e32.Ao_lock()
s.A.app.exit_key_handler=s.L.signal
s.L.wait()
def run(s,arg,dir,files):
for i in files:
if s.NP.isdir(dir):
if dir[-1]!=dir[2]:dir+=dir[2]
if s.NP.isfile(dir+i):s.list.append(rp(dir+i))
def zip_co(s):
s.path=s.LD.fm(find='dir')
s.NP.walk(path,run,'\n')
ZIP=s.ZF(path+'1.zip','w',8)
for i in s.list:
i=i[len(path):]
ph=path1.split('/')[-2]+'/'
print ru('正在处理:'+ph+i)
try:ZIP.write(path+i,ph+i)
except:print 'error';break
ZIP.close()
print ru('操作完成!')
def dezip(s,ph,run):
w=s.ZF(ph,'r')
nl=w.namelist()
for i in nl:run(w,i)
w.close();return nl
def zip_de(s):
def run(w,i):
s.path='e:/cai/'+i
r=w.read(i)
print ru('正在处理:'+i)
ph=s.NP.split(path)[0]
if not s.NP.exists(ph):os.makedirs(ph)
open(path,'w').write(r)
s.path=s.LD.fm(find='file',ext=['.zip'])
s.dezip(s.path,run)
print ru('操作完成!')
def zip_del(s):
def run(w,i):
index=s.LIST.current()
r=w.read(i)
try:ii=ru(i)
except:ii=gb(i)
if ii!=s.nl2[index]:zipf.writestr(w.getinfo(i), r)
zipf=s.ZF(s.path+'_1.zip','w')
s.dezip(s.path,run)
def zip_open(s):
s.path=s.LD.fm(find='file',ext=['.zip'])
s.zip=s.ZF(s.path)
try:s.nl2=[ru(i) for i in s.zip.namelist()]
except:s.nl2=[gb(i) for i in s.zip.namelist()]
s.LIST.set_list(s.nl2)
s.menu()
def menu(s):
if s.zip:s.A.app.menu=[(ru('解压'),s.zip_de),(ru('提取'),s.zip_de),(ru('删除'),s.zip_del),(ru('返回'),s.__init__)]
else:s.A.app.menu=[(ru('打开'),s.zip_open),(ru('压缩'),s.zip_co)]
zip=ZIP()

Python ZIP压缩的更多相关文章

  1. python zip压缩文件 并移动到指定目录

    需要引入的3个包: import os import shutil import zipfile 1. # 创建zip文件对象your_zip_file_obj = zipfile.ZipFile(' ...

  2. python zip压缩文件并设置密码

    zip     -P "123" -r  app.zip         app压缩文件 密码 压缩后名称 压缩对象名称 def zipDir(dirpath, outFullNa ...

  3. python zip 压缩

    zipfile zip文件操作 引入模块: import zipfile zip文件格式是通用的文档压缩标准,在ziplib模块中,使用ZipFile类来操作zip文件,下面具体介绍一下: zipfi ...

  4. 用Python写一款属于自己的 简易zip压缩软件 附完成图(适合初学者)

    一.软件描述 用Python tkinter模块写一款属于自己的压缩软件.zip文件格式是通用的文档压缩标准,在ziplib模块中,使用ZipFile来操作zip文件,具有功能:zip压缩功能,zip ...

  5. Python 黑客 --- 002 入门级 ZIP压缩文件口令暴力破解机

    Python 黑客 入门级实战:ZIP压缩文件口令暴力破解机 使用的系统:Ubuntu 14.04 LTS Python语言版本:Python 2.7.10 V 编写zip 压缩文件口令破解器需要使用 ...

  6. bzip2 zip 压缩后体积比 0.8:1

    1. 对.bz2 后缀文件 跳过不处理 2.逐行同字段的json文件,压缩后大小为原文件的12.81% 测试文件近似认为为逐行json文本数据,没有进行多文件重复测试,没有统计时间: {"u ...

  7. Python的压缩文件处理 zipfile & tarfile

    本文从以下两个方面, 阐述Python的压缩文件处理方式: 一. zipfile 二. tarfile 一. zipfile 虽然叫zipfile,但是除了zip之外,rar,war,jar这些压缩( ...

  8. python zip函数(11)

    一.zip函数描述和使用 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,返回的结果可以直接强转为list列表,这样做的好处是节约了不少的 ...

  9. Android总结之Gzip/Zip压缩

    前言: 做过Android网络开发的都知道,在网络传输中我们一般都会开启GZIP压缩,但是出于刨根问底的天性仅仅知道如何开启就不能满足俺的好奇心的,所以想着写个demo测试一下比较常用的两个数据压缩方 ...

随机推荐

  1. Mount DVD on CentOS

    Mount DVD on CentOS need to mount CD/DVD on CentOS Temporarily or Permanently? Here’s the Process Us ...

  2. ios学习-控制按钮图片的走动和变换

    一.项目要求:制作一个界面,通过点击按钮来控制头像(按钮)向上,向下,向左,向右移动,可以左旋转,右旋转,以及放大和缩小. 二.开发步骤: 1.通过拖动按钮到storyboard搭建UI界面(后面会写 ...

  3. python之在线PK游戏(第六天)

      本节作业: 熟练使用类和模块,写一个交互性强.有冲突的程序. 故本次写了一个文字回合制的PK游戏,系统主程序为根目录下的:game_menu.py 1. 系统功能模块: 第六天的作业:文字游戏程序 ...

  4. 准备学习Spring MVC

    这一系列笔记将带你一步一步的进入Spring MVC,高手勿喷. 首先你得安装以下的工具: JDK,虽然JDK8已经发布了一段时间了,但是由于我们并不会使用到里面的新特性,所以JDK6以上版本皆可以( ...

  5. Java泛型详解 转载

    转载地址:http://blog.csdn.net/jinuxwu/article/details/6771121 比较好的讲解: http://blog.csdn.net/lonelyroamer/ ...

  6. vs2010取消显示所有文件 崩溃

    这属于vs2010的bug,以下是微软官方对些问题的回应: i am still investigating the problem, but looks like the issue is caus ...

  7. VS2010无法调试问题解决

    最近,因为公司开发的需要,对开发环境进行全面的升级,在这其中也遇到了不少问题,在之后将陆续整理出来,以便以后查看. 之前开发环境:VS2008,ArcGIS9.3,ArcEngine9.3,Oracl ...

  8. 我的CSS布局之旅--持续更新

    虽然我也接触前端一年之久了,但是无奈从切图布局下来的经验还真是很不足,因为之前比赛或者是做小项目时全部都是自己负责设计,所以都是编写边设计,哎呀,也是醉了:或者是有模板,然后从人家上面扒拉下来的,真的 ...

  9. hibernate对象的三种状态

    对于hibernate,我想不在这里讲解了,我们就直接进入主题 在这里我将要说的是"hibernate对象的三种状态",对象是我们十分熟悉的,对吧!而对于对象它有三种状态 分别是瞬 ...

  10. ISPA

    来自CSDN的Rachel Zhang 4. Improved SAP 算法 本次介绍的重头戏.通常的 SAP 类算法在寻找增广路时总要先进行 BFS,BFS 的最坏情况下复杂度为 O(E),这样使得 ...