python压缩_Python压缩

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值