Python zipfile模块(压缩解压zip)
目錄
常用函數(shù)介紹
ZipFile.getinfo(name)
ZipFile.infolist()
ZipFile.namelist()
ZipFile.extractall(member[, path[, pwd]])
ZipFile.extract(member[, path[, pwd]])
ZipFile.printdir()
ZipFile.setpassword(pwd)
ZipFile.read(name[, pwd])
ZipFile.write(filename[, arcname[, compress_type]])
ZipFile.writestr(zinfo_or_arcname, bytes)
ZipFile.getinfo(name)
常用函數(shù)介紹
ZipFile.getinfo(name)
功能:獲取zip文檔內(nèi)指定文件的信息。返回一個zipfile.ZipInfo對象,它包括文件的詳細信息。將在下面 具體介紹該對象。
ZipFile.infolist()
功能:獲取zip文檔內(nèi)所有文件的信息,返回一個zipfile.ZipInfo的列表。
ZipFile.namelist()
功能:獲取zip文檔內(nèi)所有文件的名稱列表。
ZipFile.extractall(member[, path[, pwd]])
功能:將zip文檔內(nèi)的指定文件解壓到當(dāng)前目錄。
參數(shù):
- member 指定要解壓的文件名稱或?qū)?yīng)的ZipInfo對象
- path 指定解析文件保存的文件夾
- pwd?????????解壓密碼
實例
from zipfile import ZipFile, BadZipfilewith ZipFile(zip_path, "r") as archive:try:archive.extractall(path=extract_path, pwd=password)except BadZipfile:print("Invalid Zip file")ZipFile.extract(member[, path[, pwd]])
功能:將zip文檔內(nèi)的指定文件解壓到當(dāng)前目錄。
參數(shù):
- ??? member??????指定要解壓的文件名稱或?qū)?yīng)的ZipInfo對象
- ??? path????????指定解析文件保存的文件夾
- ??? pwd?????????解壓密碼
實例
import zipfile, oszipFile = zipfile.ZipFile(os.path.join(os.getcwd(), 'txt.zip')) for file in zipFile.namelist():zipFile.extract(file, r'd:/Work') zipFile.close()ZipFile.printdir()
功能:將zip文檔內(nèi)的信息打印到控制臺上。
ZipFile.setpassword(pwd)
功能:設(shè)置zip文檔的密碼。
ZipFile.read(name[, pwd])
功能:獲取zip文檔內(nèi)指定文件的二進制數(shù)據(jù)。
例子演示了read()的使用,zip文檔內(nèi)包括一個txt.txt的文本文件,使用read()方法讀取其二進制數(shù)據(jù),然后保存到D:/txt.txt。
import zipfile, oszipFile = 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文檔中。
參數(shù):
- ??? filename??????文件路徑
- ??? arcname???????添加到zip文檔之后保存的名稱
- ??? compress_type?壓縮方法,它的值可以是zipfile.ZIP_STORED?或zipfile.ZIP_DEFLATED
ZipFile.writestr(zinfo_or_arcname, bytes)
功能:writestr()支持將二進制數(shù)據(jù)直接寫入到壓縮文檔。
ZipFile.getinfo(name)
功能:返回一個ZipInfo對象,表示zip文檔中相應(yīng)文件的信息。
它支持如下屬性:
- ? ? ZipInfo.filename ? ? ? ?獲取文件名稱。
- ? ? ZipInfo.date_time ? ? ? 獲取文件最后修改時間。返回一個包含6個元素的元組:(年, 月, 日, 時, 分, 秒)
- ? ? ZipInfo.compress_type ? 壓縮類型。
- ? ? ZipInfo.comment ? ? ? ? 文檔說明。
- ? ? ZipInfo.extr ? ? ? ? ? ?擴展項數(shù)據(jù)。
- ? ? ZipInfo.create_system ? 獲取創(chuàng)建該zip文檔的系統(tǒng)。
- ? ? ZipInfo.create_version ?獲取、創(chuàng)建zip文檔的PKZIP版本。
- ? ? ZipInfo.extract_versio ?獲取、解壓zip文檔所需的PKZIP版本。
- ? ? ZipInfo.reserved ? ? ? ?預(yù)留字段,當(dāng)前實現(xiàn)總是返回0。
- ? ? ZipInfo.flag_bits ? ? ? zip標志位。
- ? ? ZipInfo.volume ? ? ? ? ?文件頭的卷標。
- ? ? ZipInfo.internal_attr ? 內(nèi)部屬性。
- ? ? ZipInfo.external_attr ? 外部屬性。
- ? ? ZipInfo.header_offset ? 文件頭偏移位。
- ? ? ZipInfo.CRC ? ? ? ? ? ? 未壓縮文件的CRC-32。
- ? ? ZipInfo.compress_size ? 獲取壓縮后的大小。
- ? ? ZipInfo.file_size ? ? ? 獲取未壓縮的文件大小
總結(jié)
以上是生活随笔為你收集整理的Python zipfile模块(压缩解压zip)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql与web服务器之间的分离操作
- 下一篇: Tomcat 9.0.6 HostMan