python tarfile unpredictable error tarfile.ReadError: empty header

python tarfile unpredictable error tarfile.ReadError: empty header

使用 python tar 文件模块打开 tar 文件时

tarfile.open(path, mode='a')

我收到错误

Traceback (most recent call last):
  File "/home/IPP-HGW/dboe/anaconda2/lib/python2.7/tarfile.py", line 1711, in open
    return cls.taropen(name, mode, fileobj, **kwargs)
  File "/home/IPP-HGW/dboe/anaconda2/lib/python2.7/tarfile.py", line 1721, in taropen
    return cls(name, mode, fileobj, **kwargs)
  File "/home/IPP-HGW/dboe/anaconda2/lib/python2.7/tarfile.py", line 1601, in __init__
    raise ReadError(str(e))
tarfile.ReadError: empty header

我已经尝试重现这一天了,但找不到一般规则,何时发生,何时不发生。因此不可能提供一个最小的例子。任何人都可以向我解释何时会发生此错误以及 header 是如何变为空的吗?

非常感谢, 丹尼尔

当在解析 tarfile headers 时缓冲区长度为零时会引发此异常。 它是为一个空档案而提出的。

参考: