婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

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

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

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

項目地址:

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

環(huán)境需求

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

用法 Usage

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

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

參數(shù) Parameters

  • PASSWD = ["hello","123456"] :你的密碼本,該腳本會從這個數(shù)組中不斷試驗密碼來解壓縮,直到成功為止。
  • DELETEIT :一個危險的參數(shù)。為真時,該腳本會直接刪除成功解壓的壓縮文件。為假則不會刪除。
  • LOC_WINRAR = "C:\Program Files\WinRAR\" 你的WinRAR安裝位置。就算這個變量的設(shè)置的不對,該程序也會在可能的位置來尋找對應(yīng)的程序。
  • 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批量解壓帶密碼的壓縮包的詳細內(nèi)容,更多關(guān)于python批量解壓壓縮包的資料請關(guān)注腳本之家其它相關(guān)文章!

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

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

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《用python批量解壓帶密碼的壓縮包》,本文關(guān)鍵詞  用,python,批量,解壓,帶,密碼,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《用python批量解壓帶密碼的壓縮包》相關(guān)的同類信息!
  • 本頁收集關(guān)于用python批量解壓帶密碼的壓縮包的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    在线中文字幕不卡| **欧美大码日韩| 91成人网在线| 欧美精品一区二区三区蜜桃| 欧美电视剧在线观看完整版| 18成人在线观看| 成人va在线观看| 欧美三级午夜理伦三级中视频| 久久这里只有精品首页| 日韩高清在线电影| 国产精品不卡在线| 久久se精品一区精品二区| 日韩写真欧美这视频| 国产成人精品在线看| 国产精品色哟哟| 精品av综合导航| av毛片久久久久**hd| 在线精品视频免费播放| 久久一夜天堂av一区二区三区| 久久99久久久久| 亚洲夂夂婷婷色拍ww47| 国产亚洲一二三区| 欧美性猛交xxxx黑人交| 欧美在线观看一区二区| 亚洲三级免费观看| 另类人妖一区二区av| 日韩欧美一级二级三级久久久| 蜜桃一区二区三区在线观看| 丝袜a∨在线一区二区三区不卡| 日韩女优毛片在线| 天天操天天综合网| 国产高清成人在线| 日韩精品专区在线影院重磅| 亚洲综合区在线| 美洲天堂一区二卡三卡四卡视频| 国产精品你懂的| 亚洲欧美在线视频| 欧美国产日韩一二三区| 精品久久久久久久久久久久久久久久久 | 久久影院视频免费| 在线综合+亚洲+欧美中文字幕| 国产成人精品网址| 99精品视频一区| aaa亚洲精品| 欧美理论片在线| 欧美日韩一区二区在线视频| 色婷婷一区二区| 欧美精品亚洲一区二区在线播放| 色94色欧美sute亚洲13| 99久久国产综合精品女不卡| 成人深夜视频在线观看| 北岛玲一区二区三区四区| 国产乱国产乱300精品| 色综合色综合色综合| 日本韩国精品一区二区在线观看| 99精品黄色片免费大全| 91精品国产高清一区二区三区蜜臀| 欧美性xxxxxx少妇| 91丨porny丨国产| 欧美三电影在线| 在线观看免费视频综合| 欧美日韩一二三区| 日韩一区在线播放| 中文字幕一区不卡| 国产精品美女久久久久久2018| 亚洲成人av中文| 亚洲精品你懂的| 日韩西西人体444www| 日韩一区二区在线观看视频播放| 精品国产精品一区二区夜夜嗨| 亚洲乱码精品一二三四区日韩在线| 亚洲一区二区三区四区不卡| 精品一区二区成人精品| 麻豆精品国产传媒mv男同 | 国产调教视频一区| 丝袜美腿亚洲色图| 另类专区欧美蜜桃臀第一页| 在线观看日韩国产| 精品日韩欧美一区二区| 国产精品国产三级国产三级人妇 | 欧美日韩久久一区| 2021久久国产精品不只是精品| 国产精品美女一区二区| 国产精品99久久久久久久vr| 色婷婷国产精品| 国产精品久久久久桃色tv| 亚洲高清在线视频| 欧美综合一区二区| 中文字幕免费在线观看视频一区| 激情综合一区二区三区| 色吊一区二区三区 | 欧美videofree性高清杂交| 国产综合久久久久久鬼色| 色婷婷激情一区二区三区| 日韩视频免费观看高清完整版在线观看 | 91日韩在线专区| 91精品国产乱| 亚洲伦理在线精品| 色婷婷久久综合| 国产清纯美女被跳蛋高潮一区二区久久w| 亚洲综合色自拍一区| 欧洲精品一区二区| 国产精品久久久久精k8| 亚洲国产成人高清精品| 欧美老肥妇做.爰bbww视频| 中文字幕亚洲区| 日本精品视频一区二区| 国产精品久久久久精k8| 国产高清不卡一区| 亚洲人成精品久久久久久| 国产成人综合在线播放| 欧美一级理论片| 精彩视频一区二区| 日韩区在线观看| 国产中文字幕精品| 精品99999| 成人精品国产免费网站| 国产欧美日韩中文久久| 一本到一区二区三区| 亚洲婷婷综合色高清在线| 欧美撒尿777hd撒尿| 亚洲欧美日本韩国| 欧美一区二区三区的| 午夜精品久久久久久久蜜桃app| 欧美日韩国产欧美日美国产精品| 欧美丰满嫩嫩电影| 亚洲大尺度视频在线观看| 久久99久久久欧美国产| 国产午夜精品一区二区| 激情综合色丁香一区二区| 欧美tickling挠脚心丨vk| 日本色综合中文字幕| 成人一二三区视频| 国产精品网站在线播放| 国产精品99久久久| 国产日韩精品一区二区三区| 丁香另类激情小说| 国产精品情趣视频| 91香蕉视频在线| 亚洲一区二区影院| 欧美日韩成人综合天天影院 | 亚洲国产成人高清精品| 欧美精选午夜久久久乱码6080| 日韩精品福利网| 欧美草草影院在线视频| 国产成人亚洲精品狼色在线| 欧美国产97人人爽人人喊| 色国产综合视频| 亚洲一二三级电影| 日韩三级在线免费观看| 国产一区二区三区免费看| 久久久.com| 色综合久久久网| 婷婷六月综合亚洲| 久久精品夜色噜噜亚洲aⅴ| 99在线精品一区二区三区| 一区二区三区日韩精品视频| 欧美精品第1页| 国产一区 二区| 亚洲愉拍自拍另类高清精品| 精品国产亚洲在线| 色悠悠久久综合| 精品影院一区二区久久久| 欧美激情综合网| 欧美日韩和欧美的一区二区| 日韩成人一区二区三区在线观看| 久久久久9999亚洲精品| 国产亚洲福利社区一区| 91日韩精品一区| 国内国产精品久久| 天堂在线一区二区| 日本视频免费一区| 亚洲国产一二三| 亚洲图片另类小说| 日韩精品一区国产麻豆| 欧美三级一区二区| 成熟亚洲日本毛茸茸凸凹| 极品少妇xxxx偷拍精品少妇| 一级中文字幕一区二区| 99精品一区二区| 国内国产精品久久| 午夜欧美2019年伦理| 亚洲国产成人tv| 亚洲色图欧美在线| 最新国产精品久久精品| 久久婷婷久久一区二区三区| 26uuu成人网一区二区三区| 欧美精品日韩综合在线| 在线综合视频播放| 一本大道av伊人久久综合| 蜜臀av性久久久久蜜臀aⅴ流畅| 在线亚洲人成电影网站色www| 国产精品一品视频| 国产亚洲成aⅴ人片在线观看| 国产成人自拍网| 日韩**一区毛片| 一区二区三区成人在线视频| 国产精品久久久久久久久搜平片| 久久亚洲精品国产精品紫薇 | 欧美在线免费播放|