日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:37日期:2022-06-17 18:46:25
目錄項目地址:環(huán)境需求用法 Usage參數(shù) Parameters完整代碼項目地址:

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 FilesWinRAR' 你的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-Heroimport sysimport osimport subprocess# you can change it >>>>>PASSWD = ['123456','hello'] # the possible passwordsDELETEIT = False # DANGER!! If it is True,will delete rar file after extractionLOC_WINRAR = 'C:Program FilesWinRAR' # location of WinRARLOC_7Z = 'C:Program Files7-Zip' # location of 7-ZipSAVE_MODE = True # if the suffix of file doesn’t look like a compressed file, then do nothing with it.# <<<<< you can change itPROGRAM_RAR = 'UnRAR.exe' # the program we usePROGRAM_7Z = '7z.exe' # the program we useLOC_S_WINRAR = ['C:Program FilesWinRAR','C:Program Files (x86)WinRAR','./',''] # some possible locations of WinRARLOC_S_7Z = ['C:Program Files7-Zip','C:Program Files (x86)7-Zip','./',''] # some possible locations of 7-ZipRAR_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 onlyENABLE_7Z = False # initial state only# for guessing >>>GUESS_FLAG_INIT = ['密碼', '碼', 'password', 'Password'] #0GUESS_FLAG_START_1 = [':', ':'] #1GUESS_FLAG_START_2 = ['是', '為', 'is', 'are',' '] #1GUESS_FLAG_END = ['n',' '] #2GUESS_FLAG_DIVIDE = ['或是', '或', ' or '] #3# <<< for guessingdef 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: continueelse: if ps_temp<guess_newPs:guess_newPs = ps_tempguess_len = len(initStr) if guess_newPs == len(comment):if not guess_wd: cutIn = 0 cutOut = len(comment) guess_flag = 3else: break else:guess_ps = guess_newPs + guess_lenguess_flag = 1elif 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: continueelse: if ps_temp < guess_newPs:found_temp = Trueguess_newPs = ps_temp + len(startStr)guess_flag = 2 if found_temp:guess_ps = guess_newPscutIn = guess_pscontinue 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 = 2elif guess_flag == 2: guess_newPs = len(comment) for endStr in GUESS_FLAG_END:ps_temp = comment.find(endStr, guess_ps)if ps_temp == -1: continueelse: if ps_temp < guess_newPs:guess_newPs = ps_temp guess_ps = guess_newPs guess_flag = 3 cutOut = guess_pselif 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 = 0else: guess_flag = 0 return guess_wddef 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_MODEdef 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 filereturn 2 elif extM == 11: # wrong passwordreturn 1 elif extM != 0: # errorreturn 1 else:return 0def 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: # errorreturn 1 else:return 0def 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 Trueelif winRarReturn == 2: passelse: 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('nn')+2):commentM[1].index(folder)] comment = comment[0:comment.rindex('nn')] #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 = Truebreak 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: continueelif winRarReturn == 0: successThisFile = True PASSWD[0],PASSWD[index]=PASSWD[index],PASSWD[0] breakelif winRarReturn == 2: breakelse: breakif not successThisFile:if ENABLE_7Z: for index in range(len(PASSWD)):z7Return = z7Do(folder, file, PASSWD[index])if z7Return == 1: continueelse: successThisFile = True PASSWD[0],PASSWD[index]=PASSWD[index],PASSWD[0] break if not successThisFile: print('Failed:'+file) return successThisFiledef 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)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
成人在线丰满少妇av| 国产日本久久| 精品1区2区3区4区| 国产精品成久久久久| 国产精品三p一区二区| 亚洲18在线| 好吊视频一区二区三区四区| 丝袜美腿一区| 久久99蜜桃| 国产精品久久久久毛片大屁完整版| 日韩在线观看一区二区| 日韩高清中文字幕一区二区| 久久免费精品| 久久99久久久精品欧美| 综合亚洲自拍| 中文亚洲免费| 亚洲国产日韩欧美在线| 亚洲无线一线二线三线区别av| 高清日韩中文字幕| 久久亚州av| 久久亚洲精品中文字幕| 欧美黄页在线免费观看| 欧美成a人片免费观看久久五月天| 一区二区三区四区在线观看国产日韩| 91精品1区| 91精品xxx在线观看| 国产va免费精品观看精品视频| 国产精品xxxav免费视频| 欧美三区不卡| 国产欧美一级| 国产视频网站一区二区三区| 欧美日韩视频免费看| 欧美日韩亚洲一区在线观看| 日本aⅴ免费视频一区二区三区| 亚洲aa在线| 日本视频一区二区| 国产欧美精品久久| 久久精品二区亚洲w码| 四虎精品一区二区免费| 亚洲一区导航| 日韩高清一区二区| 久久激情五月激情| 国产精品丝袜在线播放| 免费在线欧美黄色| 欧美国产小视频| 私拍精品福利视频在线一区| 亚洲电影在线| 九九在线精品| 巨乳诱惑日韩免费av| 婷婷综合福利| 麻豆视频久久| 国产精品精品| 亚洲大全视频| 国产视频一区免费看| 日韩中文字幕亚洲一区二区va在线| 爽好久久久欧美精品| 日韩手机在线| 国产精品一区2区3区| 国产激情久久| 欧产日产国产精品视频| 99国产精品视频免费观看一公开| 中文字幕视频精品一区二区三区| 日韩一区二区三免费高清在线观看 | 成人在线免费观看网站| 免费视频亚洲| 国产福利资源一区| 久久亚洲不卡| 新版的欧美在线视频| 日韩成人午夜精品| 五月天久久网站| 9999国产精品| 久久国产视频网| 视频一区国产视频| 久久网站免费观看| 久久精品国产一区二区| 亚洲人成毛片在线播放女女| 久久影院午夜精品| 欧美天堂一区二区| 亚洲涩涩av| 日韩中文视频| 久久中文字幕一区二区三区| 亚洲制服欧美另类| 亚洲国产一区二区三区在线播放| 美女毛片一区二区三区四区最新中文字幕亚洲| 黄色日韩在线| 群体交乱之放荡娇妻一区二区| 欧美精品成人| 天堂av一区| 国产精品91一区二区三区| 精品在线网站观看| 日韩美女国产精品| 日韩中文字幕91| 亚洲精品网址| 欧美日韩在线观看视频小说| 国产精品1区| 日韩av一区二区在线影视| 性欧美精品高清| 久久一区二区三区喷水| 国产69精品久久| 久久免费福利| 欧美日韩99| 婷婷亚洲成人| 亚洲最新av| 免费精品视频在线| 欧美综合国产| 视频一区中文字幕| 噜噜噜久久亚洲精品国产品小说| 久久精品亚洲欧美日韩精品中文字幕| 久久婷婷国产| 欧美激情日韩| 久久这里只有精品一区二区| 久久国产生活片100| 日韩**一区毛片| 天堂精品久久久久| 日韩高清中文字幕一区| 日本不卡视频在线观看| 中文字幕中文字幕精品| 中文日韩在线| 蘑菇福利视频一区播放| 视频一区在线播放| 亚洲综合中文| 在线观看亚洲精品福利片| 中文字幕亚洲影视| 香蕉久久一区| 亚久久调教视频| 日本亚洲不卡| 日韩 欧美一区二区三区| 日本一区福利在线| 日韩1区2区日韩1区2区| 国产探花一区| 久久一区精品| 日韩av有码| 天堂中文av在线资源库| 精品欧美久久| 久久久久久美女精品| 另类专区亚洲| 吉吉日韩欧美| a天堂资源在线| 精品日韩视频| 伊人久久亚洲美女图片| 欧美aa国产视频| 国产精品社区| 免费在线成人网| 亚洲精品动态| 91欧美极品| 国产精品白丝久久av网站| 欧美a级一区二区| 国产一二在线播放| 1024精品久久久久久久久| 视频一区免费在线观看| 欧美视频精品全部免费观看| 美女精品久久| 久久久久国产精品一区二区| 国产亚洲精品v| 日韩在线麻豆| 久久99精品久久久野外观看| 都市激情国产精品| 午夜国产精品视频| 日韩欧美精品一区二区综合视频| 国产精品综合色区在线观看| 岛国av在线网站| 午夜国产精品视频免费体验区| 亚洲人成精品久久久| 美女精品视频在线| 蜜桃成人av| 日韩国产在线观看| 福利在线一区| 日韩制服丝袜av| 久久这里只有精品一区二区| 久久亚洲精品中文字幕蜜潮电影| 99riav1国产精品视频| 日韩不卡手机在线v区| 久久久久久自在自线| 亚洲免费网址| 久久超级碰碰| 国产精品丝袜xxxxxxx| 国产精品一区二区美女视频免费看 | 国产精一区二区| 免费一二一二在线视频 | 久久久久久免费视频| 亚洲精品伊人| 色网在线免费观看| 婷婷综合成人| 亚洲午夜视频| 欧美成人精品午夜一区二区| 黑丝一区二区三区| 麻豆视频一区二区| 视频在线观看91| 国产精品久久观看| 亚洲精品裸体| 欧美午夜精彩| 国产乱人伦精品一区| 午夜精品亚洲| 国产精品s色| 99国产精品视频免费观看一公开| 精品五月天堂| 亚洲开心激情| 亚洲性视频h| 久久精品五月| 亚洲综合福利|