zoukankan      html  css  js  c++  java
  • 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,'
    ')
        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()
    

      

  • 相关阅读:
    Entity Framework 学习 Code First(1)
    CLR via C# 读书笔记 运行时序列化
    Entity Framework 学习 Model First
    轻量级开发工具 SharpDevelop
    bit加载失败
    [Reminder] 影响EMIF16异步读写性能因素
    Field Alert: Initial Voltage Level Setting of CVDD rail power supplies
    PHP函数Imap电子邮件系统函数
    PHP函数PHP选项及相关信息函数
    PHP函数Soap函数
  • 原文地址:https://www.cnblogs.com/kuihua/p/6213308.html
Copyright © 2011-2022 走看看