欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 用python批量解壓帶密碼的壓縮包

用python批量解壓帶密碼的壓縮包

熱門標簽:北瀚ai電銷機器人官網手機版 小蘇云呼電話機器人 北京電銷外呼系統加盟 市場上的電銷機器人 佛山400電話辦理 地圖標注面積 所得系統電梯怎樣主板設置外呼 朝陽手機外呼系統 儋州電話機器人

項目地址:

https://github.com/Mario-Hero/toolUnRar

環境需求

  • Windows系統
  • Python 3
  • 對于解壓RAR文件,需要安裝WinRAR
  • 對于解壓7z/zip等其他7-Zip支持解壓的文件,需要安裝7-Zip

用法 Usage

直接拖入文件夾或壓縮文件即可批量解壓縮包含密碼的壓縮文件。如果拖入的是文件夾,則會把該文件夾下的壓縮文件解壓縮,但不進入下一級目錄。通過設置PASSWD來設置字典,通過設置DELETEIT來設置解壓后是否刪除被成功解壓的壓縮文件。本腳本會通過文件的后綴識別該文件是否為壓縮文件。

你可以把WinRAR目錄下的Unrar.exe和7-Zip目錄下的7z.exe直接復制到這個toolUnRar.py文件的相同目錄下,這樣就可以攜帶使用了。

參數 Parameters

  • PASSWD = ["hello","123456"] :你的密碼本,該腳本會從這個數組中不斷試驗密碼來解壓縮,直到成功為止。
  • DELETEIT :一個危險的參數。為真時,該腳本會直接刪除成功解壓的壓縮文件。為假則不會刪除。
  • LOC_WINRAR = "C:\Program Files\WinRAR\" 你的WinRAR安裝位置。就算這個變量的設置的不對,該程序也會在可能的位置來尋找對應的程序。
  • LOC_7Z:7-Zip的安裝位置。
  • SAVE_MODE = True:如果該腳本無法通過后綴判斷這是不是壓縮文件,則不對該文件進行操作。

完整代碼

#!/usr/bin/python3
# -*- coding: UTF-8 -*-

# Created by Mario Chen, 04.04.2021, Shenzhen
# My Github site: https://github.com/Mario-Hero

import sys
import os
import subprocess

# you can change it >>>>>

PASSWD     = ["123456","hello"]  # the possible passwords
DELETEIT   = False                                     # DANGER!! If it is True,will delete rar file after extraction
LOC_WINRAR = "C:\\Program Files\\WinRAR\\"              # location of WinRAR
LOC_7Z     = "C:\\Program Files\\7-Zip\\"               # location of 7-Zip
SAVE_MODE  = True                                       # if the suffix of file doesn't look like a compressed file, then do nothing with it.

#  you can change it


PROGRAM_RAR  = "UnRAR.exe" # the program we use
PROGRAM_7Z   = "7z.exe"    # the program we use
LOC_S_WINRAR = ["C:\\Program Files\\WinRAR\\","C:\\Program Files (x86)\\WinRAR\\","./",""] # some possible locations of WinRAR
LOC_S_7Z     = ["C:\\Program Files\\7-Zip\\","C:\\Program Files (x86)\\7-Zip\\","./",""]   # some possible locations of 7-Zip
RAR_FILE     = ["rar","zip","7z","tar","gz","xz","bzip2","gzip","wim","arj","cab","chm","cpio","cramfs","deb","dmg","fat","hfs","iso","lzh","lzma","mbr","msi","nsis","ntfs","rpm","squashfs","udf","vhd","xar","z"]
NOT_RAR_FILE = ["jpg","exe","png","mkv","mp4","mp3","avi","mov","jpeg","wav","gif","mpeg","webp","txt","doc","docx","ppt","pptx","xls","xlsx","html","wps","torrent","swf","bmp","crdownload","xltd","downloading"]
ENABLE_RAR = False         # initial state only
ENABLE_7Z = False          # initial state only

# for guessing >>>
GUESS_FLAG_INIT     = ["密碼", "碼", "password", "Password"]    #0
GUESS_FLAG_START_1  = [":", ":"]                            #1
GUESS_FLAG_START_2  = ["是", "為", "is", "are"," "]          #1
GUESS_FLAG_END      = ["\n","   "]                           #2
GUESS_FLAG_DIVIDE   = ["或是", "或", " or "]                 #3
#  for guessing


def guessWDComment(comment):
    guess_flag = 0
    guess_wd: list[str] = []
    guess_ps = 0
    cutIn = 0
    cutOut = 0
    while True:
        if guess_flag == 0:
            guess_newPs = len(comment)
            guess_len = 0
            for initStr in GUESS_FLAG_INIT:
                ps_temp = comment.find(initStr, guess_ps)
                if ps_temp == -1:
                    continue
                else:
                    if ps_tempguess_newPs:
                        guess_newPs = ps_temp
                        guess_len = len(initStr)
            if guess_newPs == len(comment):
                if not guess_wd:
                    cutIn = 0
                    cutOut = len(comment)
                    guess_flag = 3
                else:
                    break
            else:
                guess_ps = guess_newPs + guess_len
                guess_flag = 1
        elif guess_flag == 1:
            found_temp = False
            found_temp_2 = False
            guess_newPs = len(comment)
            for startStr in GUESS_FLAG_START_1:
                ps_temp = comment.find(startStr, guess_ps, guess_ps + 20)
                if ps_temp == -1:
                    continue
                else:
                    if ps_temp  guess_newPs:
                        found_temp = True
                        guess_newPs = ps_temp + len(startStr)
                        guess_flag = 2
            if found_temp:
                guess_ps = guess_newPs
                cutIn = guess_ps
                continue
            else:
                guess_newPs = len(comment)
                for startStr in GUESS_FLAG_START_2:
                    ps_temp = comment.find(startStr, guess_ps, guess_ps + 20)
                    if ps_temp == -1:
                        continue
                    else:
                        if ps_temp  guess_newPs:
                            found_temp_2 = True
                            guess_newPs = ps_temp + len(startStr)
                            guess_flag = 2
            if found_temp_2:
                guess_ps = guess_newPs
            cutIn = guess_ps
            guess_flag = 2
        elif guess_flag == 2:
            guess_newPs = len(comment)
            for endStr in GUESS_FLAG_END:
                ps_temp = comment.find(endStr, guess_ps)
                if ps_temp == -1:
                    continue
                else:
                    if ps_temp  guess_newPs:
                        guess_newPs = ps_temp
            guess_ps = guess_newPs
            guess_flag = 3
            cutOut = guess_ps
        elif guess_flag == 3:
            found_cut_temp = False
            for divideStr in GUESS_FLAG_DIVIDE:
                if comment.find(divideStr, cutIn, cutOut) != -1:
                    found_cut_temp = True
                    for wd in comment[cutIn:cutOut].split(divideStr):
                        guess_wd.append(wd.strip())
                    break
            if not found_cut_temp:
                guess_wd.append(comment[cutIn:cutOut].strip())
            guess_flag = 0
        else:
            guess_flag = 0
    return guess_wd


def isCompressedFile(file):
    file = file.lower()
    for rar in RAR_FILE:
        if file.endswith("." + rar):
            return True
    for media in NOT_RAR_FILE:
        if file.endswith("." + media):
            return False
    return not SAVE_MODE


def utfIsNumber(uchar):
    return uchar >= u'\u0030' and uchar=u'\u0039'


def winRarDo(folder, file, wd):
    extractStr = " x -y -p" + wd + " \"" + folder + "\\" + file + "\" \"" + folder + "\\\""
    extM = subprocess.call("@\""+LOC_WINRAR+PROGRAM_RAR+"\""+extractStr,shell=True)     
    if extM == 1:    # not rar file
        return 2
    elif extM == 11: # wrong password
        return 1
    elif extM != 0:  # error
        return 1
    else:
        return 0


def z7Do(folder, file, wd):
    extractStr = " x -y -p" + wd + " \"" + folder + "\\" + file + "\" -o\"" + folder + "\\\"" 
    extM = subprocess.call("@\""+LOC_7Z+PROGRAM_7Z+"\""+extractStr,shell=True)
    if extM !=0: # error
        return 1
    else:
        return 0


def unrarFile(folder, file):
    successThisFile = False
    fileNameEncrypted = True
    if not folder:
        cutPos = file.rindex("\\")
        folder = file[:cutPos]
        file = file[cutPos+1:]
        #print(folder)
        #print(file)
    if ENABLE_RAR and file.endswith(".rar"):
        winRarReturn = winRarDo(folder, file, PASSWD[0])
        #print(winRarReturn)
        if winRarReturn == 0:
            #successThisFile = True
            return True
        elif winRarReturn == 2:
            pass
        else:
            getCommentStr = " l -p0 -z" + " \"" + folder + "\\" + file + "\""
            commentNumber = subprocess.call("@\""+LOC_WINRAR+PROGRAM_RAR+"\""+getCommentStr,shell=True)
            #commentNumber = 1
            if commentNumber == 0:
                commentM = subprocess.getstatusoutput("@\""+LOC_WINRAR+PROGRAM_RAR+"\""+getCommentStr)
                if commentM[0] == 0:
                    fileNameEncrypted = False
                    comment = commentM[1][(commentM[1].index("\n\n")+2):commentM[1].index(folder)]
                    comment = comment[0:comment.rindex("\n\n")]
                    #print(comment)
                    if comment:
                        wdArray = guessWDComment(comment)
                        print("Possible passwords:", wdArray)
                        for wd in wdArray:
                            winRarReturn = winRarDo(folder, file, wd)
                            if winRarReturn == 1:
                                continue
                            elif winRarReturn == 0:
                                successThisFile = True
                                break
                            elif winRarReturn == 2:
                                break
                            else:
                                break
            if successThisFile:
                return True
            for index in range(1,len(PASSWD)):
                winRarReturn = winRarDo(folder, file, PASSWD[index])
                if winRarReturn == 1:
                    continue
                elif winRarReturn == 0:
                    successThisFile = True
                    PASSWD[0],PASSWD[index]=PASSWD[index],PASSWD[0]
                    break
                elif winRarReturn == 2:
                    break
                else:
                    break
            
    if not successThisFile:
        if ENABLE_7Z:
            for index in range(len(PASSWD)):
                z7Return = z7Do(folder, file, PASSWD[index])
                if z7Return == 1:
                    continue
                else:
                    successThisFile = True
                    PASSWD[0],PASSWD[index]=PASSWD[index],PASSWD[0]
                    break
                     
    if not successThisFile: 
        print("Failed:"+file)
    return successThisFile


def unrar(folder):
    if os.path.isdir(folder):
        print(folder)
        file_list = os.listdir(folder)
        for file in file_list:
            if os.path.isdir(folder + "/" + file):
                #print(folder +"/"+ file)
                #unrar(folder +"/"+file)
                pass
            else:
                if isCompressedFile(file):
                    if unrarFile(folder, file):
                        if DELETEIT:
                            os.remove(folder + "/" + file)
    else:
        if isCompressedFile(folder):
            if unrarFile("", folder):
                if DELETEIT:
                    os.remove(folder)
                  

if __name__ == '__main__':
    if len(sys.argv) = 1:
        sys.exit(1)
    testRar = os.popen("\""+LOC_WINRAR+PROGRAM_RAR+"\"").read()    
    if not testRar:
       for loc in LOC_S_WINRAR:
           testRar = os.popen("\""+loc+PROGRAM_RAR+"\"").read()
           if testRar:
               LOC_WINRAR = loc
               ENABLE_RAR = True
               break
    else:
        ENABLE_RAR = True

    test7z = os.popen("\""+LOC_7Z+PROGRAM_7Z+"\"").read()    
    if not test7z:
       for loc in LOC_S_7Z:
           test7z = os.popen("\""+loc+PROGRAM_7Z+"\"").read()
           if test7z:
               LOC_7Z = loc
               ENABLE_7Z = True
               break
    else:
        ENABLE_7Z = True

    if (not ENABLE_RAR) and (not ENABLE_7Z):
        print("Cannot find winRAR and 7-zip")
        sys.exit(1)
    while len(PASSWD)  2:
        PASSWD.append("0")   
    for folder in sys.argv[1:]:
        #print(folder)
        unrar(folder)
    print("Finish.")
    #subprocess.call("pause",shell=True)
    sys.exit(0)

以上就是用python批量解壓帶密碼的壓縮包的詳細內容,更多關于python批量解壓壓縮包的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 使用 Python 破解壓縮文件的密碼的思路詳解
  • Python3壓縮和解壓縮實現代碼
  • python解壓zip包中文亂碼解決方法
  • Python在后臺自動解壓各種壓縮文件的實現方法
  • python 實現壓縮和解壓縮的示例
  • Python實現加密的RAR文件解壓的方法(密碼已知)
  • Python實現文件壓縮和解壓的示例代碼
  • Python腳本破解壓縮文件口令實例教程(zipfile)
  • 文件上傳服務器-jupyter 中python解壓及壓縮方式
  • Python解壓 rar、zip、tar文件的方法
  • python批量解壓zip文件的方法

標簽:云南 龍巖 酒泉 江蘇 定西 商丘 寧夏 金融催收

巨人網絡通訊聲明:本文標題《用python批量解壓帶密碼的壓縮包》,本文關鍵詞  用,python,批量,解壓,帶,密碼,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《用python批量解壓帶密碼的壓縮包》相關的同類信息!
  • 本頁收集關于用python批量解壓帶密碼的壓縮包的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    99精品视频中文字幕| 国产成人综合自拍| 日本黄色三级网站| 国产盗摄一区二区三区在线| 精品国产免费久久| 免费观看一级特黄欧美大片| 日b视频在线观看| 色综合天天性综合| 国产精品视频免费看| 国产在线国偷精品免费看| 欧美丰满美乳xxⅹ高潮www| 日韩欧美在线影院| 视频一区二区欧美| 久久一区二区电影| 日韩女优电影在线观看| 免费日韩伦理电影| 日本二区在线观看| 国产午夜精品久久久久久免费视| 国产一区欧美日韩| 亚洲午夜精品久久久久久高潮| 欧美精品一区男女天堂| 国产在线国偷精品产拍免费yy| 亚洲欧洲综合网| 国产精品国模大尺度视频| 成人精品一区二区三区四区| 色爱区综合激月婷婷| 亚洲制服欧美中文字幕中文字幕| 久久久久国产免费| 欧美一区二区三区视频免费播放| 男人的天堂久久精品| 中文字幕av久久爽一区| 中文字幕欧美激情一区| 国产精品久久国产精麻豆96堂| 久久九九久久九九| 成人综合在线观看| 欧美午夜理伦三级在线观看| 婷婷开心久久网| 精品无码人妻一区| 欧美极品少妇xxxxⅹ高跟鞋| 波多野结衣中文一区| 欧美性xxxxxxxx| 秋霞国产午夜精品免费视频| 亚洲毛片亚洲毛片亚洲毛片| 国产精品久久久久影院色老大| 91视频在线看| 日韩欧美不卡一区| 国产999精品久久久久久绿帽| 91久久一区二区| 三级在线观看一区二区| 免费黄在线观看| 亚洲三级视频在线观看| 手机在线成人av| 久久夜色精品国产欧美乱极品| 成人一区二区三区视频| 欧美天堂一区二区三区| 另类小说色综合网站| 日本妇女毛茸茸| 日韩国产精品91| 中文字幕五月天| 天堂va蜜桃一区二区三区| 日本视频在线免费| 亚洲自拍偷拍欧美| 成年人免费观看视频网站| 国产精品沙发午睡系列990531| 在线观看欧美一区二区| 久久免费电影网| 成人国产精品免费观看视频| 欧美一卡在线观看| 久久综合网色—综合色88| 亚洲风情在线资源站| 成年人视频软件| 亚洲成国产人片在线观看| 美女福利视频网| 视频一区二区中文字幕| 色综合天天天天做夜夜夜夜做| 奇米四色…亚洲| 91精彩视频在线观看| 麻豆国产精品官网| 欧美色偷偷大香| 国产精品一二二区| 日韩一区二区在线观看视频播放| 国产成人精品网址| 欧美日韩国产系列| 懂色av一区二区在线播放| 91麻豆精品91久久久久同性| caoporn国产一区二区| 精品国产乱码久久久久久图片 | av电影网站在线观看| 一区二区三区日韩欧美| 狂野欧美性猛交| 久久国产欧美日韩精品| 欧美日韩精品一区二区三区四区| 风间由美一区二区av101| 欧美成人一区二区三区片免费| 91美女视频网站| 国产精品色一区二区三区| 给我看免费高清在线观看| 亚洲一区二区三区四区在线免费观看| 国产白丝一区二区三区| 美女www一区二区| 538prom精品视频线放| aaa欧美色吧激情视频| 久久精品一区四区| brazzers精品成人一区| 午夜av区久久| 精品视频免费在线| 色综合一区二区三区| 激情综合色播激情啊| 日韩一区二区三区高清免费看看| 少妇愉情理伦片bd| 18成人在线视频| 波多野结衣亚洲一区二区| 国产在线观看免费一区| 精品精品国产高清a毛片牛牛 | 三大队在线观看| 亚洲视频每日更新| 久久r这里只有精品| 国产91丝袜在线播放九色| 久久精品一区二区三区不卡| 亚洲AV无码片久久精品| 日韩经典一区二区| 日韩一区二区电影网| 日b视频在线观看| 日韩精品91亚洲二区在线观看| 欧美一区二区三区色| 欧美无人区码suv| 免费看欧美美女黄的网站| 日韩午夜激情视频| 91精品人妻一区二区三区蜜桃欧美 | 宅男噜噜噜66一区二区66| 欧美久久久久久久久久久| 亚洲国产一区在线观看| 欧美在线观看你懂的| 黄页网站在线看| 亚洲成人午夜电影| 884aa四虎影成人精品一区| 亚洲图片综合网| 日韩av不卡一区二区| 日韩美女天天操| 精品无人区无码乱码毛片国产 | 青青草原综合久久大伊人精品优势| 在线电影一区二区三区| 精品国产欧美一区二区| 99久久国产精| 蜜乳av一区二区三区| 精品国产自在久精品国产| 国产精品天天干| 国产99久久久国产精品免费看| 中文字幕一区二区三区在线播放| 一道本成人在线| xxxx国产视频| 日本一区中文字幕| 久久亚洲免费视频| 日韩在线中文字幕视频| 丰满少妇中文字幕| 亚洲v中文字幕| 精品国产精品网麻豆系列| 黄色精品视频在线观看| 99这里只有精品| 五月婷婷激情综合| 精品国产91乱码一区二区三区 | 日本欧美久久久久免费播放网| 精品国产亚洲在线| 国产精品三区在线观看| 日韩精品xxx| 裸体歌舞表演一区二区| 中文字幕乱码日本亚洲一区二区 | 日韩欧美在线综合网| 欧美88888| 香蕉在线观看视频| 激情综合五月天| 亚洲精品成人精品456| 制服丝袜亚洲网站| 欧美18—19性高清hd4k| 99久久久精品| 日韩不卡在线观看日韩不卡视频| 国产婷婷色一区二区三区在线| 91国产精品成人| 色婷婷在线影院| av资源站一区| 秋霞午夜鲁丝一区二区老狼| 国产精品毛片大码女人| 欧美电影影音先锋| 亚洲成人激情自拍| 色综合久久88色综合天天免费| 9.1成人看片| 成人avav影音| 日韩福利视频导航| 国产精品久久久久精k8| 在线观看欧美黄色| 久久久视频6r| 欧美日韩人妻精品一区在线| 韩国女主播成人在线观看| 一区二区三区欧美日韩| 久久综合狠狠综合久久综合88 | 97精品在线播放| 影音先锋人妻啪啪av资源网站| www.在线欧美| 久久97超碰国产精品超碰| 一区二区免费视频|