Python2.7-zipfile


zipfile 模塊,提供了基本操作后綴為“zip”的文件的接口,一般使用 ZipFile 類完成操作

1、模塊方法

zipfile.is_zipfile(filename):判斷 filename 是否是一個有效的 zip 文件

2、模塊的類

2.1 ZipFile 類,讀寫 ZIP 文件

2.1.1 初始化構建類ZipFile(file[, mode[, compression[, allowZip64]]]):打開一個 ZIP 格式的文件進行讀寫

參數設置:
file:要打開的文件
mode:打開文件方式,有 r 和 w、a,默認為 r,讀取一個已存在的文件,w 會覆蓋或寫新文件,對一個已存在的 ZIP 文件以 a 模式打開,會把新文件加入壓縮包中,如果不是 ZIP 文件,會把壓縮文件加入到 file 中去(不知道會發生什么。。)
compression:指定壓縮方法,默認 ZIP_STORED,還可以是 zlib 模塊下支持的 ZIP_DEFLATED
allowZip64:默認 False,為 True 時可以操作大於 2GB 的文件

2.1.2 實例方法

close():關閉壓縮文件,退出程序前不關閉的話會導致未寫入
getinfo(name):返回一個 ZipInfo 對象,包含壓縮文件里名為 name 的信息
infolist():返回一個列表,每個元素都是一個 ZipInfo 對象,對應壓縮文件里的每個文件
namelist():列表形式返回壓縮文件里的每個文件名
printdir():輸出壓縮包內容至 sys.stdout
setpassword(pwd):設置默認密碼
open(name[, mode[, pwd]]):解壓名為 name 的文件,以只讀的 file-like 對象返回(有以下方法 read(), readline(), readlines(), __iter__(), next()),mode 可以為 r、U、rU,pwd 指定解壓密碼
extract(member[, path[, pwd]]):解壓名為 member 的文件到當前目錄,path 指定解壓至別的目錄,pwd 指定密碼
extractall([path[, members[, pwd]]]):解壓所有文件至當前目錄,path 指定解壓至別的目錄,member 指定只解壓其中的哪些文件,pwd 指定密碼
read(name[, pwd]):字節形式返回 name 的解壓結果,pwd 指定密碼
write(filename[, arcname[, compress_type]]):把 filename 文件壓縮,壓縮包內名字為 arcname,compress_type 可以覆蓋類的壓縮方法
writestr(zinfo_or_arcname, bytes[, compress_type]):把 bytes 寫入壓縮包內,名為 zinfo_or_arcname,compress_type 可以覆蓋類的壓縮方法

2.1.3 實例屬性

debug:設置 debug 信息輸出等級,默認 0,不輸出,最高 3
comment:設置 ZIP 文件的提示信息

2.2 PyZipFile 對象

2.2.1 PyZipFile 對象和 ZipFile 對象完全相同,只是多了一個額外方法

writepy(pathname[, basename]):把 pathname 下 *.py[co] 文件都壓縮

2.3 ZipInfo 對象,是由 ZipFile 的 getinfo() 和 infolist() 方法生成的對象

2.3.1 實例屬性

filename:壓縮文件名
date_time:文件最后修改時間,年、月、日、時、分、秒
compress_type:壓縮方法
comment:提示信息
extra:額外數據信息(不清楚指什么)
create_system:創建壓縮包的系統信息
create_version:壓縮包的 PKZIP 版本信息
extract_version:解壓需要的 PKZIP 版本信息
reserved:一定是 0
flag_bits:ZIP 標志位
volume:文件頭的 Volume number
internal_attr:內部屬性
external_attr:文件外部屬性
header_offset:文件頭偏移量
CRC:壓縮前文件的 crc-32 值
compress_size:壓縮后文件大小
file_size:壓縮前文件大小

3、命令行接口

可以用以下格式直接在命令行下調用:python -m zipfile ...
“...”部分有以下幾種格式:
-l <zipfile>:列出壓縮包內文件
-c <zipfile> <source1> ... <sourceN>:把 N 個 source 文件壓縮至 zipfile
-e <zipfile> <output_dir>:解壓 zipfile 至目標路徑
-t <zipfile>:檢驗是否為有效的 zipfile


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM