tar.extractall()无法识别意外的EOF

时间:2015-05-18 11:38:13

标签: python tar eof

Python tarfile库未检测到损坏的tar。

user@host$ wc -c good.tar
143360 good.tar

user@host$ head -c 130000 good.tar > cut.tar

user@host$ tar -tf cut.tar 
...
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

非常好,命令行工具可识别意外的EOF。

user@host$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56) 
>>> import tarfile
>>> tar=tarfile.open('cut.tar')
>>> tar.extractall()

不好。 Python库对文件进行解码,但不会引发任何异常。

如何使用Python库检测意外的EOF?我想避开subprocess模块。

参数errorlevel无效。我尝试了errorlevel = 1和errorlevel = 2.

2 个答案:

答案 0 :(得分:6)

我写了一个工作。它适用于我的tar文件。我想它不支持所有类型的对象都可以存储在tar文件中。

$('#<%=lblradio.ClientID %>').val(value);

答案 1 :(得分:1)

这已在Python 3中修复 - 无论OSError设置如何,都会errorlevel被提升。