引入模組:
import zipfile
zip檔案格式是通用的文件壓縮標準,在ziplib模組中,使用zipfile類來操作zip檔案,下面具體介紹一下:
zipfile.zipfile(file[, mode[, compression[, allowzip64]]])
功能:建立乙個zipfile物件,表示乙個zip檔案。
引數:-引數file表示檔案的路徑或類檔案物件(file-like object)
-引數mode指示開啟zip檔案的模式,預設值為r
r 表示讀已經存在的zip檔案
w 表示新建乙個zip文件或覆蓋乙個已經存在的zip文件
a 表示將資料附加到乙個現存的zip文件中。
-引數compression表示在寫zip文件時使用的壓縮方法
zipfile.zip_stored 只是儲存模式,不會對檔案進行壓縮,這個是預設值
zipfile.zip_deflated 對檔案進行壓縮
-如果要操作的zip檔案大小超過2g,應該將allowzip64設定為true。
zipfile還提供了如下常用的方法和屬性:
zipfile.getinfo(name)
功能:獲取zip文件內指定檔案的資訊。返回乙個zipfile.zipinfo物件,它包括檔案的詳細資訊。將在下面 具體介紹該物件。
zipfile.infolist()
功能:獲取zip文件內所有檔案的資訊,返回乙個zipfile.zipinfo的列表。
zipfile.namelist()
功能:獲取zip文件內所有檔案的名稱列表。
zipfile.extract(member[, path[, pwd]])
功能:將zip文件內的指定檔案解壓到當前目錄。
引數:member 指定要解壓的檔名稱或對應的zipinfo物件
path 指定解析檔案儲存的資料夾
pwd 解壓密碼
下面乙個例子將儲存在程式根目錄下的txt.zip內的所有檔案解壓到d:/work目錄:
import zipfile, os
zipfile = zipfile.zipfile(os.path.join(os.getcwd(), 『txt.zip』))
for file in zipfile.namelist():
zipfile.extract(file, r』d:/work』)
zipfile.close()
import zipfile, os
zipfile = zipfile.zipfile(os.path.join(os.getcwd(), 『txt.zip』))
for file in zipfile.namelist():
zipfile.extract(file, r』d:/work』)
zipfile.close()
zipfile.extractall([path[, members[, pwd]]])
功能:解壓zip文件中的所有檔案到當前目錄。
引數:members 預設值為zip文件內的所有檔名稱列表,也可以自己設定,選擇要解壓的檔名稱。
zipfile.printdir()
功能:將zip文件內的資訊列印到控制台上。
zipfile.setpassword(pwd)
功能:設定zip文件的密碼。
zipfile.read(name[, pwd])
功能:獲取zip文件內指定檔案的二進位制資料。
下面的例子演示了read()的使用,zip文件內包括乙個txt.txt的文字檔案,使用read()方法讀取其二進位制資料,然後儲存到d:/txt.txt。
import zipfile, os
zipfile = zipfile.zipfile(os.path.join(os.getcwd(), 『txt.zip』))
data = zipfile.read(『txt.txt』)
#一行語句就完成了寫檔案操作。仔細琢磨哦_
(lambda f, d: (f.write(d), f.close()))(open(r』d:/txt.txt』, 『wb』), data)
zipfile.close()
zipfile.write(filename[, arcname[, compress_type]])
功能:將指定檔案新增到zip文件中。
引數:filename 檔案路徑
arcname 新增到zip文件之後儲存的名稱
compress_type 壓縮方法,它的值可以是zipfile.zip_stored 或zipfile.zip_deflated
zipfile.writestr(zinfo_or_arcname, bytes)
功能:writestr()支援將二進位制資料直接寫入到壓縮文件。
zipfile.getinfo(name)
功能:返回乙個zipinfo物件,表示zip文件中相應檔案的資訊。
它支援如下屬性:
zipinfo.filename 獲取檔名稱。
zipinfo.date_time 獲取檔案最後修改時間。返回乙個包含6個元素的元組:(年, 月, 日, 時, 分, 秒)
zipinfo.compress_type 壓縮型別。
zipinfo.comment 文件說明。
zipinfo.extr 擴充套件項資料。
zipinfo.create_system 獲取建立該zip文件的系統。
zipinfo.create_version 獲取、建立zip文件的pkzip版本。
zipinfo.extract_versio 獲取、解壓zip文件所需的pkzip版本。
zipinfo.reserved 預留字段,當前實現總是返回0。
zipinfo.flag_bits zip標誌位。
zipinfo.volume 檔案頭的卷標。
zipinfo.internal_attr 內部屬性。
zipinfo.external_attr 外部屬性。
zipinfo.header_offset 檔案頭偏移位。
zipinfo.crc 未壓縮檔案的crc-32。
zipinfo.compress_size 獲取壓縮後的大小。
zipinfo.file_size 獲取未壓縮的檔案大小。
Python基礎 檔案
讀取整個檔案 with open text files file path as file object contents file object.read print contents 逐行讀取 with open filename as file object for line in file ...
python基礎 檔案讀寫
1.讀寫方式 f open text r encoding utf 8 2.寫讀方式 f open text w encoding utf 8 3.追加方式 f open text a encoding utf 8 4.讀方式 f open text r encoding utf 8 5.寫方式 f...
Python基礎 檔案操作
使用 open 能夠開啟乙個檔案,open 的第乙個引數為檔名和路徑 my file.txt 第二個引數為將要以什麼方式開啟它,比如w為可寫方式.如果計算機沒有找到 my file.txt 這個檔案,w 方式能夠建立乙個新的檔案,並命名為 my file.txt 例項 text tthis is m...