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

python解壓縮文件或文件夾兩種常見方式(附代碼)

 更新時間:2025年04月15日 09:33:18   作者:游客520  
這篇文章主要介紹了python解壓縮文件或文件夾兩種常見方式,Python的zipfile和shutil模塊提供了強大的文件和文件夾壓縮與解壓縮功能,zipfile模塊適合精細控制,而shutil模塊則快速簡單,文中提供了詳細的代碼示例,需要的朋友可以參考下

前言

在日常開發(fā)或數(shù)據(jù)處理工作中,我們經(jīng)常需要對文件或文件夾進行壓縮和解壓縮操作。Python 提供了強大的內(nèi)置模塊,如 zipfile 和 shutil,可以幫助我們高效地完成這些任務(wù)。

本文將介紹如何使用 Python 對文件夾或文件進行壓縮和解壓縮,內(nèi)容包括兩種常見方式:zipfile 和 shutil,并提供完整代碼示例。

壓縮文件或文件夾

1. 使用 zipfile 模塊壓縮文件夾

zipfile 模塊是 Python 標準庫的一部分,用于創(chuàng)建和讀取 .zip 文件。它支持精細控制文件壓縮的內(nèi)容和路徑。

以下是一個將文件夾壓縮為 .zip 文件的代碼示例:

import os
import zipfile

def compress_folder_to_zip(folder_path, zip_path):
    with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for root, dirs, files in os.walk(folder_path):
            for file in files:
                file_path = os.path.join(root, file)
                # 添加到 ZIP 文件時,保留相對路徑
                arcname = os.path.relpath(file_path, folder_path)
                zipf.write(file_path, arcname)
    print(f"壓縮完成:{zip_path}")

# 示例用法
compress_folder_to_zip('path/to/folder', 'output.zip')

代碼說明:

  • os.walk 遍歷文件夾及其子文件夾中的所有文件。
  • os.path.relpath 確保壓縮后的文件路徑相對于原始文件夾路徑。
  • zipfile.ZIP_DEFLATED 指定壓縮算法。

2. 使用 shutil 模塊壓縮文件夾

如果你只需要簡單快速地將文件夾壓縮為 .zip 或 .tar 文件,可以使用 shutil 模塊。它支持多種壓縮格式,包括 zip、tar、gztar 等。

代碼示例如下:

import shutil

def compress_with_shutil(folder_path, output_path, format='zip'):
    # format 支持 "zip", "tar", "gztar", "bztar", "xztar"
    shutil.make_archive(output_path, format, folder_path)
    print(f"壓縮完成:{output_path}.{format}")

# 示例用法
compress_with_shutil('path/to/folder', 'output', 'zip')

代碼說明:

  • shutil.make_archive 方法自動完成壓縮過程,output_path 不需要包含擴展名。
  • format 參數(shù)支持多種格式,選擇適合的壓縮格式即可。

解壓縮文件

1. 使用 zipfile 解壓 .zip 文件

使用 zipfile 模塊,我們可以解壓 .zip 文件到指定目錄:

import zipfile

def extract_zip(zip_path, extract_to):
    with zipfile.ZipFile(zip_path, 'r') as zipf:
        zipf.extractall(extract_to)
    print(f"解壓完成:{extract_to}")

# 示例用法
extract_zip('output.zip', 'path/to/extract')

代碼說明:

  • zipf.extractall() 會解壓縮 ZIP 文件中的所有內(nèi)容到指定路徑。
  • 適用于需要自定義解壓邏輯的場景。

2. 使用 shutil 解壓文件

如果文件是 .zip 格式,并且不需要復雜操作,可以使用 shutil 快速解壓:

import shutil

def extract_with_shutil(zip_path, extract_to):
    shutil.unpack_archive(zip_path, extract_to)
    print(f"解壓完成:{extract_to}")

# 示例用法
extract_with_shutil('output.zip', 'path/to/extract')

代碼說明:

  • shutil.unpack_archive 支持解壓多種格式文件,如 .zip 和 .tar。
  • 適用于快速解壓任務(wù)。

完整示例:壓縮與解壓縮結(jié)合

以下是一個包含壓縮和解壓縮功能的完整 Python 腳本:

import os
import zipfile
import shutil

def compress_folder(folder_path, zip_path):
    with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for root, dirs, files in os.walk(folder_path):
            for file in files:
                file_path = os.path.join(root, file)
                arcname = os.path.relpath(file_path, folder_path)
                zipf.write(file_path, arcname)
    print(f"壓縮完成:{zip_path}")

def decompress_folder(zip_path, extract_to):
    with zipfile.ZipFile(zip_path, 'r') as zipf:
        zipf.extractall(extract_to)
    print(f"解壓完成:{extract_to}")

# 示例用法
if __name__ == "__main__":
    # 壓縮文件夾
    compress_folder('path/to/folder', 'output.zip')
    # 解壓 ZIP 文件
    decompress_folder('output.zip', 'path/to/extract')

總結(jié)

在這篇文章中,我們學習了如何使用 Python 的 zipfile 和 shutil 模塊進行文件夾和文件的壓縮與解壓縮操作:

  • zipfile 模塊:適合需要精細控制的場景,如自定義壓縮路徑。
  • shutil 模塊:快速完成壓縮和解壓縮,適合簡單任務(wù)。

無論你是需要對多個文件進行壓縮管理,還是希望快速解壓一個文件夾,這兩種方式都能滿足你的需求。

到此這篇關(guān)于python解壓縮文件或文件夾兩種常見方式的文章就介紹到這了,更多相關(guān)python解壓縮文件或文件夾內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python執(zhí)行CMD指令,并獲取返回的方法

    python執(zhí)行CMD指令,并獲取返回的方法

    今天小編就為大家分享一篇python執(zhí)行CMD指令,并獲取返回的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python?使用?pyc?解決明文密鑰問題記錄

    Python?使用?pyc?解決明文密鑰問題記錄

    pyc 是 Python 經(jīng)過 compile 后的文件類型,一段 Python 代碼執(zhí)行前會先將 .py 文件編譯成 .pyc 文件它是一種字節(jié)碼 byte code,然后由 Python 虛擬機執(zhí)行,這篇文章主要介紹了Python使用pyc解決明文密鑰問題,需要的朋友可以參考下
    2023-07-07
  • 一文搞懂Python中函數(shù)的定義與使用

    一文搞懂Python中函數(shù)的定義與使用

    函數(shù)是具有某種特定功能的代碼塊,可以重復使用。這篇文章將為大家詳細介紹Python中函數(shù)的定義與使用,感興趣的小伙伴可以學習一下
    2022-06-06
  • Pandas中resample方法詳解

    Pandas中resample方法詳解

    這篇文章主要介紹了Pandas中resample方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • Python3利用Dlib19.7實現(xiàn)攝像頭人臉識別的方法

    Python3利用Dlib19.7實現(xiàn)攝像頭人臉識別的方法

    這篇文章主要介紹了Python 3 利用 Dlib 19.7 實現(xiàn)攝像頭人臉識別 ,利用python開發(fā),借助Dlib庫捕獲攝像頭中的人臉,提取人臉特征,通過計算歐氏距離來和預存的人臉特征進行對比,達到人臉識別的目的,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Python文件夾批處理操作代碼實例

    Python文件夾批處理操作代碼實例

    這篇文章主要介紹了Python文件夾批處理操作代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • 使用Python編寫Prometheus監(jiān)控的方法

    使用Python編寫Prometheus監(jiān)控的方法

    今天小編就為大家分享一篇關(guān)于使用Python編寫Prometheus監(jiān)控的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • python 子類調(diào)用父類的構(gòu)造函數(shù)實例

    python 子類調(diào)用父類的構(gòu)造函數(shù)實例

    這篇文章主要介紹了python 子類調(diào)用父類的構(gòu)造函數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python如何隨機生成高強度密碼

    python如何隨機生成高強度密碼

    這篇文章主要為大家詳細介紹了python隨機生成高強度密碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • matplotlib常見函數(shù)之plt.rcParams、matshow的使用(坐標軸設(shè)置)

    matplotlib常見函數(shù)之plt.rcParams、matshow的使用(坐標軸設(shè)置)

    這篇文章主要介紹了matplotlib常見函數(shù)之plt.rcParams、matshow的使用(坐標軸設(shè)置),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01

最新評論