我有一个用python编写的程序,它将一个存档(zip文件)上传到远程服务器。但在上传它之前,我需要测试它是否已损坏,所以我想执行像unzip -t
之类的操作,如果失败则抛出错误。
python中是否有可以实现的功能(在google上找不到任何内容),或者如果执行系统调用unzip -t
,是否有办法从我的程序中捕获错误?
由于
答案 0 :(得分:4)
Zipfile.testzip
是你的朋友。
读取存档中的所有文件并检查其CRC和文件头。返回第一个坏文件的名称,否则返回None。
答案 1 :(得分:2)
import zipfile
def zip_isOk(fn):
with zipfile.ZipFile(fn, 'r') as zipf:
return zipf.testzip() is None