一、前言
隨著計算機存儲技術的日益發展,我們存儲在硬碟中的數據越來越多,這些數據可能是文本、圖像、音頻或者其他形式的數據。而壓縮和解壓縮文件是常見的操作方法,它們可以有效地節省硬碟存儲空間,也讓文件的傳輸更加方便。Python的zipfile模塊提供了一種簡單的方式來處理.zip格式的文件,我們可以使用Python zipfile模塊來實現對壓縮包的操作。
二、zipfile模塊的基礎知識
1. 打開壓縮包
在Python中,我們可以使用ZipFile類來打開一個.zip的壓縮包,然後就可以對壓縮包進行讀寫操作。下面是一個例子,演示如何打開一個已經存在的zip文件:
import zipfile myzip = zipfile.ZipFile('test.zip', 'r')
2. 獲取壓縮包信息
在我們打開壓縮包後,可以使用ZipFile的各種方法來獲取壓縮包的相關信息,比如獲取壓縮包中的文件列表或者獲取某個文件的信息。下面是一些常用的方法:
1)獲取文件列表
myzip.namelist() # 返回壓縮包中的所有文件列表
2)獲取文件信息
info = myzip.getinfo('test.txt') # 獲取test.txt的文件信息 print(info.filename) print(info.date_time) print(info.compress_size) print(info.file_size)
3. 解壓和壓縮文件
我們可以使用ZipFile類的extract方法從壓縮包中解壓文件,也可以使用write方法往壓縮包中寫入文件,下面是一個例子:
1)解壓文件
myzip.extract('test.txt', path='.')
這個命令將會把test.txt解壓到當前目錄。
2)壓縮文件
myzip.write('test.txt', compress_type=zipfile.ZIP_DEFLATED)
這個命令將會把test.txt文件壓縮到.zip文件中。
三、zipfile模塊的高級應用
1. 壓縮文件夾
除了壓縮單個文件以外,我們也可以使用Python zipfile模塊壓縮整個文件夾。方法是遍歷整個文件夾,並將每個文件都壓縮到壓縮包中。
下面是一個壓縮整個文件夾的例子:
import zipfile import os def zipdir(path, ziph): for root, dirs, files in os.walk(path): for file in files: ziph.write(os.path.join(root, file)) if __name__ == '__main__': zipf = zipfile.ZipFile('my_python_files.zip', 'w', zipfile.ZIP_DEFLATED) zipdir('/path/to/folder', zipf) zipf.close()
2. 解壓密碼保護的壓縮包
有些時候,我們需要解壓一個加密過的壓縮包,這就需要使用Python zipfile模塊的setpassword方法。下面是一個例子:
import zipfile with zipfile.ZipFile('my_zipfile.zip', 'r') as zip_ref: zip_ref.extractall(path='my_directory', pwd=b'my_password')
在這個例子中,我們使用了ZipFile類的extractall方法來解壓壓縮包,並設置了密碼my_password。
3. 壓縮網路資源
有時候,我們需要將從互聯網上獲取的資源壓縮到.zip文件中,我們可以使用Python urllib模塊來下載網路資源,並將其存儲到壓縮包中。下面是一個壓縮網路資源的例子:
import zipfile import urllib.request def download(url, file_name): with urllib.request.urlopen(url) as dl_file: with open(file_name, 'wb') as out_file: out_file.write(dl_file.read()) if __name__ == '__main__': download('https://example.com/myfile.txt', 'myfile.txt') zipf = zipfile.ZipFile('my_zipfile.zip', 'w', zipfile.ZIP_DEFLATED) zipf.write('myfile.txt') zipf.close()
四、總結
Python的zipfile模塊提供了一種簡單的方式來處理.zip格式的文件,我們可以使用Python zipfile模塊來實現對壓縮包的操作。zipfile模塊提供了一些基礎的方法,如打開、獲取壓縮包信息、解壓和壓縮文件等,也提供了一些高級應用,如壓縮文件夾、解壓密碼保護的壓縮包、壓縮網路資源等。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/198241.html