【发布时间】:2023-10-11 21:33:01
【问题描述】:
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。
【问题讨论】:
-
不错的收获!您应该考虑打开错误报告并提交您的解决方案
-
@knitti 我打开了一个错误报告:bugs.python.org/issue24259
-
遗憾的是,我无法为现有的奖励添加一些赏金......
-
您使用的是哪种焦油?我的没有引发错误。
-
我使用 tar (GNU tar) 1.27.1。 python.org 上的错误报告(见上文)有一个损坏的 tar_which_is_cut.tar 用于测试。