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. 在SQL Server 2005中连接Oracle,完成查询、插入操作

    建立指向Oracle的连接假设Oracle数据库的用户名为test,密码为test,在SQL Server数据库所在服务器上建立的指向Oracle数据库的服务命名为hisorcl.1. 在SQL Se ...

  2. python中函数接收多余参数

    代码: def fun(x): return x print fun(10) 函数fun(x)接受参数是x,传入数字"10",打印函数的返回值结果 就是10,如果我传递多个参数时, ...

  3. linux中oops信息的调试及栈回溯【转】

    本文转载自:http://blog.csdn.net/kangear/article/details/8217329 ========================================= ...

  4. sqlalchemy ORM

    本节内容       ORM介绍     sqlalchemy安装     sqlalchemy基本使用     多外键关联     多对多关系   1. ORM介绍   orm英文全称object ...

  5. 使用maven搭建SpringMVC项目环境

    Window环境下用maven新建一个项目: mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=cn-cisol -Dartif ...

  6. ML-分类与逻辑回归

    布尔分类(binary classification)问题: 训练集:$S=\{(x^{(i)}, y^{(i)})\}$ 输入:特征向量$x$ 期望输出:$y\in\{0, 1\}$ 这里使用的假设 ...

  7. 年终汇报、总结、述职:教你做一场B格满满的技术大会演讲

    什么样的演讲和呈现最受听众欢迎,内容干货?逻辑清晰?长相帅气? 偶尔被邀作为speaker参加一些圈内的技术大会进行演讲.这里我分享下自己的经验,如何做一场B格满满的技术大会演讲,希望给做汇报.总结. ...

  8. 3.密码pasuwado————记第一次超越Candy?

    激动人心的2016.11.4模拟赛结束了 更激动人心的是我得了90分,第一次超越豪哥,特立文纪念. 3.密码 [问题描述] 哪里有压迫,哪里就有反抗. moreD的宠物在法庭的帮助下终于反抗了.作为一 ...

  9. jquery.validate 使用--验证表单隐藏域

    jQuery validate很不错的一个jQuery表单验证插件.升级到了1.9版的后,发现隐藏表单域验证全部失效,特别是在jquery.ui.tabs.min.js构造的Tabs里的验证. 是因为 ...

  10. python datetime模块

    该模块的时间有限时限:1 - 9999 dir(datetime)  from datetime import datetime, timedelta, timezone dt = datetime. ...