最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

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

本文將介紹如何使用 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。
  • 適用于快速解壓任務。

完整示例:壓縮與解壓縮結(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 模塊:快速完成壓縮和解壓縮,適合簡單任務。

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

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

相關(guān)文章

  • python交互模式基礎知識點學習

    python交互模式基礎知識點學習

    在本篇內(nèi)容里小編給大家整理的是關(guān)于python交互模式是什么的相關(guān)基礎知識點,需要的朋友們可以參考下。
    2020-06-06
  • python批量導入數(shù)據(jù)進Elasticsearch的實例

    python批量導入數(shù)據(jù)進Elasticsearch的實例

    今天小編就為大家分享一篇python批量導入數(shù)據(jù)進Elasticsearch的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • 解決Keras中循環(huán)使用K.ctc_decode內(nèi)存不釋放的問題

    解決Keras中循環(huán)使用K.ctc_decode內(nèi)存不釋放的問題

    這篇文章主要介紹了解決Keras中循環(huán)使用K.ctc_decode內(nèi)存不釋放的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python+NumPy繪制常見曲線的方法詳解

    Python+NumPy繪制常見曲線的方法詳解

    NumPy(Numerical Python)是Python的一種開源的數(shù)值計算擴展。本文將利用NumPy庫繪制利薩茹曲線、計算斐波那契數(shù)列、方波和鋸齒波和三角波,需要的可以參考一下
    2022-06-06
  • Python中讀取和加解密PDF文件的詳細教程

    Python中讀取和加解密PDF文件的詳細教程

    在Python中讀取和加密PDF文件是一項常見且實用的任務,尤其對于需要處理大量文檔自動化處理的場景,本文將詳細介紹如何使用Python讀取PDF文件內(nèi)容以及如何使用不同的庫來給PDF文件加密,需要的朋友可以參考下
    2024-08-08
  • Python之列表推導式最全匯總(中篇)

    Python之列表推導式最全匯總(中篇)

    這篇文章主要介紹了Python之列表推導式最全匯總(中篇),本文章內(nèi)容詳細,通過案例可以更好的理解列表推導式的相關(guān)知識,本模塊分為了三部分,本次為中篇,需要的朋友可以參考下
    2023-01-01
  • python基礎教程之序列詳解

    python基礎教程之序列詳解

    這篇文章主要介紹了python基礎教程之序列詳解,本文的序列包含元組(tuple)、列表(list)等數(shù)據(jù)類型,需要的朋友可以參考下
    2014-08-08
  • Python正則表達式教程之二:捕獲篇

    Python正則表達式教程之二:捕獲篇

    什么是捕獲呢?使用小括號指定一個子表達式后,匹配這個子表達式的文本(即匹配的內(nèi)容)可以在表達式或者其他過程中接著用,下面這篇文章就主要介紹了Python正則表達式中關(guān)于捕獲的相關(guān)資料,需要的朋友可以參考下。
    2017-03-03
  • numpy如何刪除矩陣中的部分數(shù)據(jù)numpy.delete

    numpy如何刪除矩陣中的部分數(shù)據(jù)numpy.delete

    這篇文章主要介紹了numpy如何刪除矩陣中的部分數(shù)據(jù)numpy.delete問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • opencv 圖像腐蝕和圖像膨脹的實現(xiàn)

    opencv 圖像腐蝕和圖像膨脹的實現(xiàn)

    這篇文章主要介紹了opencv 圖像腐蝕和圖像膨脹的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07

最新評論

格尔木市| 阿拉善右旗| 遂溪县| 肥东县| 旬邑县| 乳源| 龙南县| 雅安市| 田阳县| 科技| 许昌县| 桂平市| 华宁县| 灌云县| 时尚| 禹城市| 洪湖市| 庆安县| 三河市| 安丘市| 弥渡县| 岢岚县| 罗源县| 廉江市| 莲花县| 乳源| 西乌珠穆沁旗| 黄大仙区| 山阴县| 芮城县| 龙江县| 哈尔滨市| 凤阳县| 宜黄县| 浮梁县| 宁海县| 襄汾县| 阿克苏市| 武平县| 新巴尔虎右旗| 平潭县|