测试存档数据(unzip -t等效) - Python

时间:2011-08-01 18:34:44

标签: python linux unzip

我有一个用python编写的程序,它将一个存档(zip文件)上传到远程服务器。但在上传它之前,我需要测试它是否已损坏,所以我想执行像unzip -t之类的操作,如果失败则抛出错误。

python中是否有可以实现的功能(在google上找不到任何内容),或者如果执行系统调用unzip -t,是否有办法从我的程序中捕获错误?

由于

2 个答案:

答案 0 :(得分:4)

Zipfile.testzip是你的朋友。

  

读取存档中的所有文件并检查其CRC和文件头。返回第一个坏文件的名称,否则返回None。

答案 1 :(得分:2)

使用ZipFile.testzip

import zipfile
def zip_isOk(fn):
    with zipfile.ZipFile(fn, 'r') as zipf:
        return zipf.testzip() is None