测试归档数据(unzip -t等效)- Python
我有一个用Python写的程序,它可以把一个压缩文件(zip文件)上传到远程服务器。不过在上传之前,我需要先检查一下这个文件是不是坏掉了,所以我想执行类似于 unzip -t
的命令,如果检查失败就报错。
请问Python里面有没有现成的功能可以做到这一点(我在谷歌上没找到相关信息),或者有没有办法在我的程序中捕捉到执行 unzip -t
时的错误?
谢谢
2 个回答
3
使用 ZipFile.testzip
方法:
import zipfile
def zip_isOk(fn):
with zipfile.ZipFile(fn, 'r') as zipf:
return zipf.testzip() is None
4
Zipfile.testzip
是个好帮手。
这个功能会读取压缩包里的所有文件,检查它们的CRC值和文件头。如果发现第一个有问题的文件,它会返回这个文件的名字;如果没有问题,就返回None。