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压缩的更多相关文章

  1. Python压缩指定文件及文件夹为zip

    Python压缩指定的文件及文件夹为.zip 代码: def zipDir(dirpath,outFullName): """ 压缩指定文件夹 :param dirpat ...

  2. 【Python】使用Python压缩文件/文件夹

    [Python压缩文件夹]导入“zipfile”模块 def zip_ya(startdir,file_news): startdir = ".\\123" #要压缩的文件夹路径 ...

  3. Python压缩文件/文件夹

    [Python压缩文件夹]导入“zipfile”模块 def zip_ya(startdir,file_news): startdir = ".\\123" #要压缩的文件夹路径 ...

  4. python压缩pdf(指定缩放比例)

    python压缩pdf(指定缩放比例) 原理 pdf文件处理使用https://pymupdf.readthedocs.io/en/latest/index.html库可以轻松实现,该库的官方说明文档 ...

  5. python 压缩 解压缩 文件

    1. 用zipfile模块打包文件或是目录.解压zip文件 http://wangwei007.blog.51cto.com/68019/1045577 #!/usr/bin/env python # ...

  6. python压缩文件

    #coding=utf-8 #压缩文件 import os,os.path import zipfile #压缩:传路径,文件名 def zip_compression(dirname,zipfile ...

  7. python 压缩文件为zip后删除原文件

    压缩.log 文件为zip后删除原文件 需要注意:本人作为小白,该脚本需要和.log在一起,后面有时间需要改正. #!/usr/local/python/bin/python #-*-coding=u ...

  8. python 压缩模块大杂烩(zipfile,bz2,lzma,gzip,tarfile,zlib)

    [*] 以下压缩模块请结合python的官方文档(https://docs.python.org/3.5/library/index.html)来实践或者对比(我的是python 3.5) 1.pyt ...

  9. Python压缩&解压缩

    Python中常用的压缩模块有zipfile.tarfile.gzip 1.zipfile模块的简单使用 import zipfile # 压缩 z1 = zipfile.ZipFile('zip_t ...

随机推荐

  1. python学习笔记之类class(第六天)

         参考文档:              1.金角大王博客:http://www.cnblogs.com/alex3714/articles/5188179.html               ...

  2. T3500通过PXE克隆报“Unable to Control A20 Line XMS Driver not installed”

    问题:使用deepin_ghost1.6中的PXE网络GHOST时提示如下错误信息: ERROR:Unable to control A20 line!XMS Driver not installed ...

  3. java实现ftp文件的上传与下载

    最近在做ftp文件的上传与下载,基于此,整理了一下资料.本来想采用java自带的方法,可是看了一下jdk1.6与1.7的实现方法有点区别,于是采用了Apache下的框架实现的... 1.首先引用3个包 ...

  4. java 创建string对象机制 字符串缓冲池 字符串拼接机制

    对于创建String对象的机制,在这一过程中涉及的东西还是值得探究一番的. 首先看通过new String对象和直接赋值的方式有什么区别,看如下代码: public static void main( ...

  5. greenDAO3 基本使用

    greenDAO3基本使用 greenDAO3开始使用注解的方式定义实体类(entity),并且是通过安装gradle插件来生成代码.之前的版本则是通过建立一个独立的Java-lib工程来存放生成的文 ...

  6. C语言-自定义函数

    C语言自定义函数 --1-- 自定义函数定义 1.1 无参无返回值函数 1.2 无参有返回值函数 1.3 有参无返回值函数 1.4 有参有返回值函数 --2-- 函数的参数 2.1 形式参数介绍和使用 ...

  7. 关于webrtc视频会议的解决方案

    以我的经验来看视频会议分两种模式:网状模型,星型 1.网状模型 所谓的网状模型就是参加会议的人中每两个人建立一个点对点的连接. 比如:一个会议室有三个人A,B,C 基于网络模型就需要这样: 1.A和B ...

  8. div嵌套导致子区域margin-top失效不起作用的解决方法

    有两个嵌套关系的div,如果外层div的父元素padding值为0, 那么内层div的margin-top或者margin-bottom的值会"转移"给外层div,使父元素产生上外 ...

  9. c++打开浏览器

    调用外部命令 如果用默认浏览器,就调用ShellExecute(NULL, _T("open"), _T("explorer.exe"), _T("h ...

  10. animation 动画重播

    <style> div, body{ margin: 0; padding: 0; } body{ background-color: #333; } @keyframes running ...