如何在 Python 中解壓檔案
Azaz Farooq
2023年10月10日
-
在 Python 中使用
extractall()
方法到工作目錄中解壓檔案 -
在 Python 中使用
extractall()
方法解壓檔案到不同的目錄下 -
在 Python 中使用基於條件的
extractall()
方法解壓檔案 -
在 Python 中使用
unpack_archive()
方法解壓檔案
ZIP
檔案是一種檔案檔案格式,有助於進行無損資料壓縮。一個 ZIP
檔案可以包含一個以上的壓縮檔案。在一個 ZIP
檔案中,多個檔案的傳輸速度比單個檔案快,而且它減少了資料的大小。Python 內建的 ZipFile
模組可以用來解壓 Zip 檔案。
本文將討論在 Python 中提取壓縮檔案或 Zip 檔案的不同方法。
在 Python 中使用 extractall()
方法到工作目錄中解壓檔案
我們先用下面的命令匯入 Python 內建的 zipfile
模組。
from zipfile import ZipFile
完整的示例程式碼如下。
from zipfile import ZipFile
test_file_name = "my_files.zip"
with ZipFile(test_file_name, "r") as zip:
zip.printdir()
zip.extractall()
ZipFile
函式中的 r
代表檔案的讀取操作,而 extractall()
函式則將壓縮檔案的內容提取到當前工作目錄。
輸出:
File Name Modified Size
file1.txt 2020-11-09 23:03:06 0
file2.txt 2020-11-09 23:03:18 0
在 Python 中使用 extractall()
方法解壓檔案到不同的目錄下
這個方法提取壓縮檔案,但提取到不同的目錄。主要的區別是,我們將在 extractall()
方法中傳遞目標目錄作為引數。
完整的示例程式碼如下。
from zipfile import ZipFile
with ZipFile("my_files.zip", "r") as zip:
zip.extractall("temp")
print("File is unzipped in temp folder")
在當前的工作目錄下建立一個新的目錄 temp
,然後將所有的壓縮檔案解壓到該目錄下。
輸出:
Files are unzipped in temp folder
在 Python 中使用基於條件的 extractall()
方法解壓檔案
當你的壓縮檔案中有大量的檔案,並且你需要提取具有特定副檔名的檔案時,這個方法就很方便。例如,我們將從壓縮檔案中提取 .txt
檔案。
完整的示例程式碼如下。
from zipfile import ZipFile
with ZipFile("my_files.zip", "r") as obj_zip:
FileNames = obj_zip.namelist()
for fileName in FileNames:
if fileName.endswith(".txt"):
zipObj.extract(fileName, "temp_txt")
namelist()
函式返回 zip 檔案中所有檔案的名稱。
endswith()
方法檢查檔名是否以 .txt
結束。如果是這樣,extract()
函式將提取 .txt
檔案到當前工作目錄下的 temp_txt
資料夾。
在 Python 中使用 unpack_archive()
方法解壓檔案
本方法使用 Python 內建的 shutil
模組。它將提取所有格式的存檔檔案。
完整的示例程式碼如下。
import shutil
shutil.unpack_archive("test.zip")
提取的檔案將在你執行這個指令碼的當前工作目錄中。