欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python自動化解壓多種格式的壓縮文件(支持.zip/.rar/.7z格式)

 更新時間:2025年06月30日 09:58:34   作者:岫珩  
這篇文章主要為大家詳細(xì)介紹了如何使用Python實現(xiàn)自動化解壓多種格式的壓縮文件,包括.zip,.rar和.7z格式,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

1. 使用場景

實現(xiàn)自動化解壓多種格式的壓縮文件,包括.zip、.rar和.7z格式。

2. 準(zhǔn)備WinRAR壓縮工具

從官網(wǎng)下載并安裝WinRAR

記錄WinRAR.exe文件路徑(默認(rèn)安裝位置如下)

C:\Program Files\WinRAR\WinRAR.exe

安裝示意圖:

3.準(zhǔn)備測試文件

1.將包含文件的本地文件夾分別壓縮為三種格式:

  • TEST2ZIP.7z
  • TEST2ZIP.rar
  • TEST2ZIP.zip

2.創(chuàng)建目標(biāo)文件夾TEST1RAR用于存放解壓文件

4. 基礎(chǔ)實現(xiàn)代碼

示例代碼如下

unpack_test.py

import subprocess
import os

def unpack(filepath, target_folder):
    # 獲取文件目錄和名稱
    dir_folder = os.path.dirname(filepath)
    file_name_pre = os.path.splitext(os.path.basename(filepath))[0]
    print("當(dāng)前目錄:", dir_folder)	
    print("文件名:", file_name_pre)
    
    # 配置WinRAR命令
    command = [
        'C:\\Program Files\\WinRAR\\WinRAR.exe',
        'x',                   # 解壓保留目錄結(jié)構(gòu)
        os.path.abspath(filepath),
        target_folder.rstrip('\\') + '\\',
        '-o+',                 # 覆蓋已有文件
        '-y'                   # 自動確認(rèn)
    ]
    
    print("執(zhí)行命令:", " ".join(command))
    result = subprocess.run(command, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
    return target_folder

if __name__ == '__main__':
    # 測試配置(可切換不同格式)
    file_pack = r'D:\重載\TEST2ZIP.zip'
    # file_pack = r'D:\重載\TEST2ZIP.7z'
    # file_pack = r'D:\重載\TEST2ZIP.rar'
    target_folder = r'D:\重載\TEST1RAR'
    unpack(file_pack, target_folder)

5. 操作演示

1.在unpack_test.py目錄打開CMD

2. 執(zhí)行解壓命令

py unpack_test.py

執(zhí)行后輸出如下

3. 檢查解壓結(jié)果

文件夾已存在,打開可查看打包前的文件夾內(nèi)容

6.完整實現(xiàn)代碼

示例代碼如下

unpack_test.py

# 所需引入的庫
import subprocess
import os

# 解壓通用函數(shù)入口
def unpack(filepath, target_folder):
    # 獲取文件所在目錄
    dir_folder = os.path.dirname(filepath)
    print("dir_folder----> ",dir_folder)
    # # 獲取文件名(包含后綴,如test1.rar、test2.zip、test3.7z)
    # file_name_all = os.path.basename(filepath)
    # print("file_name_all----> ",file_name_all)
    # # 將文件名和后綴分開,獲取分割后的數(shù)組
    # file_name_all_list = os.path.splitext(file_name_all)
    # print("file_name_all_list----> ",file_name_all_list)
    # # 獲取文件名(不包含后綴,如test1)
    # file_name_pre = file_name_all_list[0]

    # 以上注釋代碼的整合 目的為了獲取壓縮包文件名(不帶后綴)
    file_name_pre = os.path.splitext(os.path.basename(filepath))[0]
    print("file_name_pre----> ",file_name_pre)

    # 除了指定固定的輸出目錄,還可以使用文件名作為輸出目錄
    # 將rar文件所在目錄和文件名(不包含后綴)拼接,成為文件夾的路徑,用于解壓后存儲文件
    # target_folder = os.path.join(dir_folder, file_name_pre)
    # print("target_folder----> ",target_folder)
    # if not os.path.exists(target_folder):
        # os.makedirs(target_folder)

    # 本地winrar命令集成
    command = [
            # 本地WinRAR.exe文件路徑
            'C:\\Program Files\\WinRAR\\WinRAR.exe',
            # 解壓并保留完整目錄結(jié)構(gòu)
            'x',           
            # 傳入源RAR文件的絕對路徑(引號包裹,防止路徑中有空格)
            os.path.abspath(filepath),
            # 目標(biāo)目錄(確保路徑以一個反斜杠結(jié)束,否則WinRAR會出錯),如果該參數(shù)省略,則會默認(rèn)為當(dāng)前目錄
            target_folder.rstrip('\\') + '\\',
            # 覆蓋已存在的文件
            '-o+',         
            # 將壓縮包名稱作為子目錄添加到目標(biāo)路徑中,如果添加該參數(shù),則壓縮包名稱會作為子目錄添加到目標(biāo)路徑中,產(chǎn)生兩層一樣的目錄
            # '-ad',
            # 后臺運行
            # '-ibck',       
            # 自動確認(rèn)所有提示
            '-y'           
        ]
    
    print("正在執(zhí)行命令:", " ".join(command))

    # 運行命令 subprocess本身會處理空格問題
    result = subprocess.run(command, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
    # 返回目標(biāo)目錄
    return target_folder

if __name__ == '__main__':
    # 測試rar解壓
    # file_pack = r'D:\重載\TEST2ZIP.rar'
    # target_folder = r'D:\重載\TEST1RAR'

    # 測試7z解壓
    # file_pack = r'D:\重載\TEST2ZIP.7z'
    # target_folder = r'D:\重載\TEST1RAR'

    # 測試zip解壓
    file_pack = r'D:\重載\TEST2ZIP.zip'
    target_folder = r'D:\重載\TEST1RAR'

    unpack(file_pack, target_folder)

到此這篇關(guān)于Python自動化解壓多種格式的壓縮文件(支持.zip/.rar/.7z格式)的文章就介紹到這了,更多相關(guān)Python解壓文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 對python 讀取線的shp文件實例詳解

    對python 讀取線的shp文件實例詳解

    今天小編就為大家分享一篇對python 讀取線的shp文件實例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Pycharm基本操作及調(diào)試代碼

    Pycharm基本操作及調(diào)試代碼

    最近天氣狂熱暴躁,很難靜下心來學(xué)習(xí)啦,于是給大家整理一些python開發(fā)工具pycharm基本操作及調(diào)試代碼吧,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • python虛擬環(huán)境virtualenv的安裝與使用

    python虛擬環(huán)境virtualenv的安裝與使用

    virtualenv用于創(chuàng)建獨立的Python環(huán)境,多個Python相互獨立,互不影響,它能夠:1. 在沒有權(quán)限的情況下安裝新套件 2. 不同應(yīng)用可以使用不同的套件版本 3. 套件升級不影響其他應(yīng)用
    2017-09-09
  • Python?3.11.0下載安裝并使用help查看模塊信息的方法

    Python?3.11.0下載安裝并使用help查看模塊信息的方法

    本文給大家介紹Python?3.11.0下載安裝并使用help查看模塊信息的相關(guān)知識,首先給大家講解了Python?3.11.0下載及安裝緊接著介紹了在命令行使用help查看模塊信息的方法,感興趣的朋友跟隨小編一起看看吧
    2022-11-11
  • Django項目配置連接多個數(shù)據(jù)庫的方法記錄

    Django項目配置連接多個數(shù)據(jù)庫的方法記錄

    最近在進(jìn)行django項目開發(fā)的時候,遇到了需要連接兩個MySQL數(shù)據(jù)庫的問題,下面這篇文章主要給大家介紹了關(guān)于Django項目配置連接多個數(shù)據(jù)庫的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • python爬取盤搜的有效鏈接實現(xiàn)代碼

    python爬取盤搜的有效鏈接實現(xiàn)代碼

    這篇文章主要介紹了python爬取盤搜的有效鏈接,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-07-07
  • 在Python的while循環(huán)中使用else以及循環(huán)嵌套的用法

    在Python的while循環(huán)中使用else以及循環(huán)嵌套的用法

    這篇文章主要介紹了在Python的while循環(huán)中使用else以及循環(huán)嵌套的用法,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10
  • Python模塊常用四種安裝方式

    Python模塊常用四種安裝方式

    這篇文章主要介紹了Python模塊常用四種安裝方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • Python 一鍵獲取百度網(wǎng)盤提取碼的方法

    Python 一鍵獲取百度網(wǎng)盤提取碼的方法

    這篇文章主要介紹了Python 一鍵獲取百度網(wǎng)盤提取碼的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Jupyter Notebook打開任意文件夾操作

    Jupyter Notebook打開任意文件夾操作

    這篇文章主要介紹了Jupyter Notebook打開任意文件夾操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04

最新評論