亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python利用7z批量解壓rar的實現

系統 1789 0

一開始我使用了rarfile這個庫,奈何對于含有密碼的壓縮包支持不好,在linux上不拋出異常;之后有又嘗試了unrar。。比rarfile還費勁。。

所以用了調用系統命令的方法,用7z來解壓

通過apt可以安裝上7z-full和7z的rar插件

有一個地方要注意 -o 和-p與后面的目錄、密碼之間沒有空格!!

同樣可以用這個代碼暴力破解壓縮包密碼

            
# coding:utf-8 

import os

import zipfile

import traceback

import time

import shutil

import sys,getopt

 

succeedpath=""

unsucceedpath=""

psds={"2018","123456"}

 

 

opts,args=getopt.getopt(sys.argv[1:],"p:")

path=args[0]

for psd in args[1:]:

  psds.add(psd)

#for op,value in opts:

#  if op in ("-p","--password"):

#    psds.add(value)

 

 

def mkdirs(dirpath):

  global succeedpath,unsucceedpath

  succeedpath=os.path.join(dirpath,"0.succeed")

  unsucceedpath=os.path.join(dirpath,"0.unsucceed")

  if(not os.path.exists(succeedpath)):

    os.makedirs(succeedpath)

  if(not os.path.exists(unsucceedpath)):

    os.makedirs(unsucceedpath)

 

def extractdir(path):

  for filename in os.listdir(path):

    filepath=os.path.join(path,filename)

    if(os.path.isfile(filepath)):

      extractfile(filepath)

 

 

def extractfile(path):

  (dirpath,filen)=os.path.split(path)

  print("解壓"+filen+"   ing...")

  try:

    if(filen.endswith(".rar") or filen.endswith(".zip")):

      path=os.path.abspath(path)

      dirpath=os.path.abspath(dirpath)

      cmd="7z x "+path+" -o"+dirpath+" -y "+" -p"

      state=False

      if(os.system(cmd)==0):

        state=True

      else:

        for psd in psds:

          cmdp="7z x "+path+" -p"+psd+" -y "+" -o"+dirpath

          if(os.system(cmdp)==0):

            state=True

            break

    else:

      return

    if (state):

      shutil.move(path,succeedpath)

    else:

      shutil.move(path,unsucceedpath)

      with open(os.path.join(dirpath,"errorinfo.txt"),"a+") as errorinfo:

        errorinfo.write("time:"+str(time.time())+"\n")

        errorinfo.write("解壓出錯!\n可能是密碼錯誤!\n")

  except :

    with open(os.path.join(dirpath,"errorinfo.txt"),"a+") as errorinfo:

      errorinfo.write("time:"+str(time.time())+"\n")

      errorinfo.write("解壓出錯!\n")

      traceback.print_exc(file=errorinfo)

    shutil.move(path,unsucceedpath)

 
if(os.path.isdir(path)):

  dirpath=path

  mkdirs(dirpath)

  extractdir(dirpath)

elif(os.path.isfile(path)):

  filepath=path

  (dirpath,filename)=os.path.split(path)

  mkdirs(dirpath)

  extractfile(path)

else:

  print("輸入錯誤!請重新輸入!")


          

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 香蕉视频免费在线观看 | 国产精品免费视频一区 | 久久99国产精品 | 日本精品视频在线 | 成人国产精品久久久免费 | 国产粉嫩白浆在线观看 | 国产一区二区三区在线免费观看 | 日韩美女va在线毛片免费知 | 国产成人精品免费影视大全 | 久久久久国产精品免费免费 | 99pao在线视频精品免费 | 男人在线网站 | 狠狠色噜噜狠狠狠狠网站视频 | 中文字幕一区婷婷久久 | 欧美肥婆videos另类 | 日韩欧美在线免费观看 | 日韩精品一区二区三区中文字幕 | 日韩欧美综合 | 国产玖玖在线 | 国产一区二区三区久久精品 | 四虎免费在线观看 | 国产欧美综合一区二区 | 国产精品午夜久久久久久99热 | 免费二区| 一区二区三区免费视频 www | 狠狠色噜噜狠狠狠狠奇米777 | 中文成人在线 | 99日精品欧美国产 | 色婷婷色综合缴情在线 | 欧美高清日韩 | h片在线免费 | 久操视频在线播放 | 毛片毛片毛片毛片出来毛片 | 欧美一级毛片免费高清aa | 日日射夜夜操 | 中文字幕中韩乱码亚洲大片 | 国内精品免费一区二区观看 | 国产成人h综合亚洲欧美在线 | 国产一级做a爱免费视频 | 久久精品国产99国产精品 | 韩国女主播一区二区三区视频 |