Python ZIP压缩
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压缩的更多相关文章
- python zip压缩文件 并移动到指定目录
需要引入的3个包: import os import shutil import zipfile 1. # 创建zip文件对象your_zip_file_obj = zipfile.ZipFile(' ...
- python zip压缩文件并设置密码
zip -P "123" -r app.zip app压缩文件 密码 压缩后名称 压缩对象名称 def zipDir(dirpath, outFullNa ...
- python zip 压缩
zipfile zip文件操作 引入模块: import zipfile zip文件格式是通用的文档压缩标准,在ziplib模块中,使用ZipFile类来操作zip文件,下面具体介绍一下: zipfi ...
- 用Python写一款属于自己的 简易zip压缩软件 附完成图(适合初学者)
一.软件描述 用Python tkinter模块写一款属于自己的压缩软件.zip文件格式是通用的文档压缩标准,在ziplib模块中,使用ZipFile来操作zip文件,具有功能:zip压缩功能,zip ...
- Python 黑客 --- 002 入门级 ZIP压缩文件口令暴力破解机
Python 黑客 入门级实战:ZIP压缩文件口令暴力破解机 使用的系统:Ubuntu 14.04 LTS Python语言版本:Python 2.7.10 V 编写zip 压缩文件口令破解器需要使用 ...
- bzip2 zip 压缩后体积比 0.8:1
1. 对.bz2 后缀文件 跳过不处理 2.逐行同字段的json文件,压缩后大小为原文件的12.81% 测试文件近似认为为逐行json文本数据,没有进行多文件重复测试,没有统计时间: {"u ...
- Python的压缩文件处理 zipfile & tarfile
本文从以下两个方面, 阐述Python的压缩文件处理方式: 一. zipfile 二. tarfile 一. zipfile 虽然叫zipfile,但是除了zip之外,rar,war,jar这些压缩( ...
- python zip函数(11)
一.zip函数描述和使用 zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,返回的结果可以直接强转为list列表,这样做的好处是节约了不少的 ...
- Android总结之Gzip/Zip压缩
前言: 做过Android网络开发的都知道,在网络传输中我们一般都会开启GZIP压缩,但是出于刨根问底的天性仅仅知道如何开启就不能满足俺的好奇心的,所以想着写个demo测试一下比较常用的两个数据压缩方 ...
随机推荐
- Subversion Edge
http://www.collab.net/downloads/subversion#tab-1
- php常用函数(持续中)
字符串 折分字符串:split和explode 函数原型:array split (string $pattern, string $string [, int $limit]) ...
- 【转】Android APK反编译就这么简单 详解(附图)
转载地址:http://blog.csdn.net/vipzjyno1/article/details/21039349 在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂 ...
- this关键字简单应用
class PersonDemo3 { public static void main(String[] args) { Person p=new Person("张三",22); ...
- libevent源码分析:listener
listener是libevent封装的一个方便生成监听者的一组结构和函数,其中包括: /* * Copyright (c) 2000-2007 Niels Provos <provos@cit ...
- HTML 5 应用程序缓存(下)
Manifest 文件manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容). manifest 文件可分为三个部分: CACHE MANIFEST - 在此标题下列出的 ...
- 【前端】js代码模拟用户键盘鼠标输入
js代码模拟用户键盘鼠标输入 原生js var event = new Event('mousewheel'); event.wheelDelta = 360 document.dispatchEve ...
- Python3基础 访问列表 小于指定索引值的所有元素
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...
- hive1.2.1实战操作电影大数据!
我采用的是网上的电影大数据,共有3个文件,movies.dat.user.dat.ratings.dat.分别有3000/6000和1百万数据,正好做实验. 下面先介绍数据结构: RATINGS FI ...
- json接口
http://api.rottentomatoes.com/api/public/v1.0/lists/movies/in_theaters.json?apikey=7waqfqbprs7pajbz2 ...