Python自動解凍

2101 ワード

import subprocess
import zipfile as zf
import platform as pf
import os

class ZipObj():
    def __init__(self, filepathname, passwd,tip_path):
        self.filepathname = filepathname    #   
        self.passwd = passwd        #    
        self.Tip_Path = tip_path   #  

    def enCrypt(self, deleteSource=False):
    # """
    #         ,      
    #     window    rar  
    #
    #     linux            zip -P123 tar source
    #             
    # """
        target = "b.zip"
        source = self.filepathname
        if pf.system() == "Windows":

            # rar a -p"www.hanxinkong.top"  filename.zip D:/360MoveData/Users/Administrator/Desktop/test/*
            # rar  a -ep1 -p"www.hanxinkong.top" test.zip - z"D:\360MoveData\Users\Administrator\Desktop\Tip.txt"   D:/360MoveData/Users/Administrator/Desktop/test/*
            # ep1     (  )  
            
            cmd = ['rar','a', '-p"%s"' % (self.passwd), target, source]
            cmd_tip = ['rar', 'c', 'z"%s"' % (self.Tip_Path), target]
            print (cmd)
            p = subprocess.Popen(cmd, executable=r'D:\COMMOND SAFE\winrar\WinRAR.exe')
            p.wait()

            # rar c z"D:/360MoveData/Users/Administrator/Desktop/Tip.txt"  filename
            t = subprocess.Popen(cmd, executable=r'D:\COMMOND SAFE\winrar\WinRAR.exe')
            t.wait()

        else:
            cmd = ['zip', '-P %s' % self.passwd, target, source]
            p = subprocess.Popen(cmd)
            p.wait()
        #            os.system(" ".join(cmd))
        if deleteSource:
            os.remove(source)

if __name__ == "__main__":
    filepathname = "D:/360MoveData/Users/Administrator/Desktop/test/*"
    passwd = "www.hanxinkong.top"
    tip_path = "D:/360MoveData/Users/Administrator/Desktop/Tip.txt"

    zipo = ZipObj(filepathname,passwd,tip_path)

    zipo.enCrypt(deleteSource=False) ##