国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Python腳本】使用Python解壓zip、rar文件

這篇具有很好參考價(jià)值的文章主要介紹了【Python腳本】使用Python解壓zip、rar文件。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、解壓 zip 文件

基本解壓操作

import zipfile

'''
基本格式:zipfile.ZipFile(filename[,mode[,compression[,allowZip64]]])
mode:可選 r,w,a 代表不同的打開文件的方式;r 只讀;w 重寫;a 添加
compression:指出這個 zipfile 用什么壓縮方法,默認(rèn)是 ZIP_STORED,另一種選擇是 ZIP_DEFLATED;
allowZip64:bool型變量,當(dāng)設(shè)置為True時(shí)可以創(chuàng)建大于 2G 的 zip 文件,默認(rèn)值 True;

'''
zip_file = zipfile.ZipFile(path)
zip_list = zip_file.namelist() # 得到壓縮包里所有文件

for f in zip_list:
    zip_file.extract(f, folder_abs) # 循環(huán)解壓文件到指定目錄
 
zip_file.close() # 關(guān)閉文件,必須有,釋放內(nèi)存

其他方法

zipfile.is_zipfile('xxx.zip') # 判斷文件是否是個有效的zipfile
zipfile.namelist('xxx.zip') # 列表,存儲zip文件中所有子文件的path(相對于zip文件包而言的)
zipfile.infolist('xxx.zip') # 列表,存儲每個zip文件中子文件的ZipInfo對象
zipfile.printdir() # 打印輸出zip文件的目錄結(jié)構(gòu),包括每個文件的path,修改時(shí)間和大小
zipfile.open(name[,mode[,pwd]]) # 獲取一個子文件的文件對象,可以對其進(jìn)行read,readline,write等操作
zipfile.setpassword(psw),為zip文件設(shè)置默認(rèn)密碼
zipfile.testzip() # 讀取zip中的所有文件,驗(yàn)證他們的CRC校驗(yàn)和。返回第一個損壞文件的名稱,如果所有文件都是完整的就返回None
zipfile.write(filename[,arcname[,compression_type]]) # 將zip外的文件filename寫入到名為arcname的子文件中(當(dāng)然arcname也是帶有相對zip包的路徑的),打開方式為w或a
zipfile.extract(member, path=None, pwd=None) # 解壓一個zip中的文件,path為解壓存儲路徑,pwd為密碼
zipfile.extractall(path[,pwd]) # 解壓zip中的所有文件,path為解壓存儲路徑,pwd為密碼

二、解壓rar文件

Python 本身不支持 rar 文件的解壓,需要先安裝相關(guān)依賴才可使用

1.使用rarfile解壓rar文件

pip3 install rarfile 安裝rarfile庫

(注意是解壓,壓縮這個方法不支持)

#coding=utf-8
import rarfile
path = "E:\\New\\New.rar"
path2 = "E:\\New"
 
rf = rarfile.RarFile(path)         #待解壓文件
rf.extractall(path2)               #解壓指定文件路徑
rf.extractall(path2,pwd=password)               #指定密碼
rf.close()

壓縮包中存在多個文件時(shí),可以使用for循環(huán)進(jìn)行批量解壓

rf = rarfile.RarFile(_rarfile, mode='r') # mode的值只能為'r'
rf_list = rf.namelist() # 得到壓縮包里所有的文件
print('rar文件內(nèi)容', rf_list)

for f in rf_list:
    rf.extract(f, folder_abs)  # 循環(huán)解壓,將文件解壓到指定路徑
# 一次性解壓所有文件到指定目錄
# rf.extractall(path) # 不傳path,默認(rèn)為當(dāng)前目錄

2、使用unrar解壓 rar 文件

  • 安裝 unrar 模塊:pip install unrar
  • 下載安裝 unrar library,網(wǎng)址:http://www.rarlab.com/rar/UnRARDLL.exe 按照默認(rèn)安裝路徑安裝
  • 將安裝后文件夾中的 X64 文件夾加入環(huán)境變量(默認(rèn)路徑為 C:\Program Files (x86)\UnrarDLL\x64)
  • 系統(tǒng)變量中新建變量,變量名輸入 UNRAR_LIB_PATH,變量值為 C:\Program Files(x86)\UnrarDLL\x64\UnRAR64.dll(32位系統(tǒng)下的變量值為C:\Program Files
    (x86)\UnrarDLL\UnRAR.dll)
  • 將 winrar 的目錄下的 unrar.exe 復(fù)制到 Python 路徑的Scripts 文件夾下
  • 重啟Python編輯器使環(huán)境變量生效

3、調(diào)用winrar來解壓 rar 文件

當(dāng)上述方法無效時(shí),可以采用os.system執(zhí)行cmd命令的方式,調(diào)用winrar來進(jìn)行解壓。以下是遞歸解壓文件夾實(shí)例文章來源地址http://www.zghlxwxcb.cn/news/detail-745655.html

import os
import shutil

# 解壓縮rar到指定文件夾
# def extractRar(zfile, path, pwd):
#     # rar_command1 = "C:\Program Files\WinRAR\WinRAR.exe x -ibck %s %s -p%s" % (zfile, path)
#     # rar_command2 = r'"C:\Program Files\WinRAR\WinRAR.exe" x -ibck %s %s -p%s' % (zfile, path, pwd)
#     os.system(rar_command2)
# extractRar('flag.rar', '', '-')

path = '.'
filename = 'flag.rar'
passwd = '-'
desdir = '.'

def unrarfile(path, zfile, passwd):
    # 拼裝目標(biāo)文件
    filePath = os.path.join(path, zfile)
    # for fp in os.listdir(path):
    #     if fp[-3:] == 'rar':
    # 執(zhí)行解壓命令        
    rar_command2 = r'"C:\Program Files\WinRAR\WinRAR.exe" x -ibck %s %s -p%s' % (filePath, desdir, passwd)
    r = os.system(rar_command2)
    print(r)

    # 遞歸刪除解壓出來的文件夾
    if path != '.':
        print(path)
        shutil.rmtree(path)

    # 查詢最新解壓出來的文件夾,及其內(nèi)部文件
    for fp2 in os.listdir(desdir):
        if os.path.isdir(fp2):
            # 文件夾名稱就是密碼
            passwd = fp2
            # print(passwd)

            # 拼裝新的目標(biāo)文件夾
            path = os.path.join(desdir,passwd)
            # 讀取新的目標(biāo)文件
            zfile = os.listdir(path)[0]

    # 遞歸解壓
    unrarfile(path,zfile,passwd)
unrarfile(path,filename, passwd)

到了這里,關(guān)于【Python腳本】使用Python解壓zip、rar文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • .net rar zip壓縮包解壓

    引入? SharpCompress https://download.csdn.net/download/weixin_42020830/87737306 string?targetFile=\\\"c:\\\\test.zip\\\"; string?zipFile=\\\"c:\\\\test\\\"; ?using (Stream stream =System.IO.File.OpenRead(targetFile)) ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? ? var reader = ReaderFactory.Open(stream); ? ? ? ? ? ? ? ? ? ? ? ? while (r

    2024年02月01日
    瀏覽(15)
  • QT 利用開源7z 實(shí)現(xiàn)解壓各種壓縮包,包括進(jìn)度條和文件名的顯示(zip,7z,rar,iso等50多種格式)

    QT 利用開源7z 實(shí)現(xiàn)解壓各種壓縮包,包括進(jìn)度條和文件名的顯示(zip,7z,rar,iso等50多種格式)

    ? ? ? ? 想做一個winRAR一樣的解壓軟件嗎?很簡單,利用開源的7z庫就能實(shí)現(xiàn)。我看網(wǎng)上其他人說的方法不敢茍同,誤人子弟。以前自己在項(xiàng)目中使用過7z,這次又有需要,就想記錄下來。如果你研究過如何用7z的話,一定知道7z的每一個GUID都代表了一種格式,50多種GUID也就有

    2024年02月04日
    瀏覽(24)
  • Linux中_使用tar_gzip_zip_rar_命令_打包和解包_壓縮和解壓

    1.3.1、到當(dāng)前目錄下 1.3.2、到指定目錄下 3.1.1、壓縮當(dāng)前目錄: 3.1.2、壓縮指定目錄: 3.2.1、到當(dāng)前目錄 3.2.2、到指定目錄 4.2.1、壓縮文件本身: 4.2.2、遞歸壓縮,將指定目錄下所有文件和子目錄一并壓縮:

    2024年02月04日
    瀏覽(21)
  • python 解壓指定目錄的所有zip文件

    ========================================================== 修改了一下?。?!遞歸所有文件夾里面的zip 附件為,打包好的exe,可以直接執(zhí)行。(https://download.csdn.net/download/li13148023/88492399)

    2024年02月06日
    瀏覽(26)
  • 【ubuntu】詳解解壓命令(.tar、.gz、.tar.gz、.bz2、.tar.bz2、.zip、.rar等)

    【ubuntu】詳解解壓命令(.tar、.gz、.tar.gz、.bz2、.tar.bz2、.zip、.rar等)

    目錄 *.tar 文件 *.tar.gz 和 *.tgz 文件 *.gz 文件 *.bz2 文件 *.tar.bz2 文件 *.zip 文件 *.rar 文件 ? ? ?

    2024年02月16日
    瀏覽(23)
  • 【python】 循環(huán)解壓zip格式

    import?zipfile,os,pyzipper path?=?r\\\'C:UsersLenovoDesktop2\\\'? ? ? ? ? ? ? ? #循環(huán)解壓桌面上\\\"2\\\"文件夾內(nèi)的zip格式壓縮包 def?x():?????????#一次解壓、提取、刪除 ????for?i?in?os.listdir(path): ????????if?\\\'.zip\\\'?in?i: ????????????route?=?os.path.join(path,i) ????????????z

    2023年04月17日
    瀏覽(25)
  • centos如何解壓rar格式文件

    centos如何解壓rar格式文件

    鏈接: link 命令如下: ** (以下為拓展,可跳過) ** 1、打包.tar.gz文件:(打包文件到某目錄) 2、解壓.tar.gz文件到當(dāng)前目錄 3、解壓.tar.gz文件到指定目錄 出現(xiàn)如下提示即表示編譯成功。

    2024年02月11日
    瀏覽(20)
  • 在Ubuntu上解壓RAR格式文件

    在Ubuntu操作系統(tǒng)上,你可以使用一些工具來解壓RAR格式的文件。RAR是一種常見的壓縮文件格式,通常用于在Windows系統(tǒng)中創(chuàng)建和分享壓縮文件。然而,Ubuntu默認(rèn)情況下并不支持RAR格式的解壓縮,因此你需要安裝額外的軟件來處理這些文件。 在Ubuntu上,你可以使用一個名為\\\"unr

    2024年02月04日
    瀏覽(25)
  • Java解壓RAR文件的幾種方式

    2024年02月16日
    瀏覽(21)
  • 使用@zip.js/zip.js與naive-ui的Tree組件實(shí)現(xiàn)在線文件解壓預(yù)覽

    使用@zip.js/zip.js與naive-ui的Tree組件實(shí)現(xiàn)在線文件解壓預(yù)覽

    用于壓縮和解壓縮文件的 JavaScript 庫 支持Zip64 格式 支持WinZIP AES和 PKWare ZipCrypto 加密 支持同時(shí)讀取和寫入一個或多個 zip 文件 集成工作池管理器 無第三方依賴 該庫依賴于Promise、TypedArray、?Streams?API 以及以下可選的 API: Web Workers Compression Streams Web Crypto 該庫與最新版本的

    2024年02月19日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包