Python/ target=_blank class=infotextkey>Python 提供了兩個標準庫模塊來處理文件的壓縮和解壓縮操作:zipfile 用于處理 ZIP 格式的文件壓縮,tarfile 用于處理 Tar 格式的文件壓縮。
本文將分享 這兩個模塊的使用方法,包括安裝、壓縮文件的創建、壓縮文件的讀取、解壓縮和示例代碼。
安裝
Python 的 zipfile 和 tarfile 模塊是標準庫的一部分,因此不需要額外安裝。可以直接在 Python 程序中導入它們。
import zipfile
import tarfile
使用 zipfile 模塊壓縮文件
創建壓縮文件
使用 zipfile 模塊可以輕松地創建 ZIP 壓縮文件。
以下是一個示例,演示如何創建一個 ZIP 壓縮文件并將文件添加到其中:
import zipfile
# 創建一個 ZIP 壓縮文件
with zipfile.ZipFile('example.zip', 'w') as zipf:
# 添加文件到壓縮文件
zipf.write('file.txt', 'file.txt')
讀取壓縮文件
要讀取 ZIP 壓縮文件并獲取其中的文件列表,可以使用 zipfile.ZipFile 的 namelist() 方法:
import zipfile
with zipfile.ZipFile('example.zip', 'r') as zipf:
file_list = zipf.namelist()
print("ZIP 壓縮文件中的文件列表:", file_list)
使用 tarfile 模塊壓縮文件
創建壓縮文件
使用 tarfile 模塊可以創建 Tar 壓縮文件。
以下是一個示例,演示如何創建一個 Tar 壓縮文件并將文件添加到其中:
import tarfile
# 創建一個 Tar 壓縮文件
with tarfile.open('example.tar.gz', 'w:gz') as tarf:
# 添加文件到壓縮文件
tarf.add('file.txt', arcname='file.txt')
讀取壓縮文件
要讀取 Tar 壓縮文件并獲取其中的文件列表,可以使用 tarfile.TarFile 的 getnames() 方法:
import tarfile
with tarfile.open('example.tar.gz', 'r:gz') as tarf:
file_list = tarf.getnames()
print("Tar 壓縮文件中的文件列表:", file_list)
解壓縮文件
要解壓縮 ZIP 或 Tar 壓縮文件中的文件,可以使用相應的模塊提供的解壓縮方法。
以下是一個示例,演示如何解壓縮文件:
解壓縮 ZIP 文件
import zipfile
with zipfile.ZipFile('example.zip', 'r') as zipf:
zipf.extractall('extracted_files') # 將文件解壓縮到指定目錄
解壓縮 Tar 文件
import tarfile
with tarfile.open('example.tar.gz', 'r:gz') as tarf:
tarf.extractall('extracted_files') # 將文件解壓縮到指定目錄
示例代碼
以下是一些示例代碼,演示了如何使用 zipfile 和 tarfile 模塊執行常見任務:
import zipfile
import tarfile
# 使用 zipfile 模塊創建 ZIP 壓縮文件
with zipfile.ZipFile('example.zip', 'w') as zipf:
zipf.write('file.txt', 'file.txt')
# 使用 zipfile 模塊讀取 ZIP 壓縮文件
with zipfile.ZipFile('example.zip', 'r') as zipf:
file_list = zipf.namelist()
print("ZIP 壓縮文件中的文件列表:", file_list)
# 使用 tarfile 模塊創建 Tar 壓縮文件
with tarfile.open('example.tar.gz', 'w:gz') as tarf:
tarf.add('file.txt', arcname='file.txt')
# 使用 tarfile 模塊讀取 Tar 壓縮文件
with tarfile.open('example.tar.gz', 'r:gz') as tarf:
file_list = tarf.getnames()
print("Tar 壓縮文件中的文件列表:", file_list)
# 解壓 ZIP 文件
with zipfile.ZipFile('example.zip', 'r') as zipf:
zipf.extractall('extracted_files')
# 解壓 Tar 文件
with tarfile.open('example.tar.gz', 'r:gz') as tarf:
tarf.extractall('extracted_files')
總結
Python 的 zipfile 和 tarfile 模塊是處理文件的壓縮和解壓縮操作的重要工具。分別用于 ZIP 和 Tar 格式的文件,提供了簡單而有效的方法來創建、讀取和解壓縮文件。在本文中,分享了如何創建壓縮文件并添加文件到中,以及如何讀取壓縮文件中的文件列表。同時,還演示了如何解壓縮 ZIP 和 Tar 壓縮文件中的文件到指定目錄。
這兩個模塊對于處理文件操作非常有用,可以在許多場景中幫助您有效地管理文件和數據。無論是備份文件、打包文件,還是解壓縮已壓縮的數據,zipfile 和 tarfile 模塊都提供了簡單而靈活的解決方案。