def openbin(self, path, mode="r", buffering=-1, **options):
self.check()
path = relpath(normpath(path))
if 'w' in mode or '+' in mode or 'a' in mode:
raise errors.ResourceReadOnly(path)
try:
member = self._tar.getmember(path)
except KeyError:
six.raise_from(errors.ResourceNotFound(path), None)
if not member.isfile():
raise errors.FileExpected(path)
rw = RawWrapper(self._tar.extractfile(member))
if six.PY2: # Patch nonexistent file.flush in Python2
def _flush():
pass
rw.flush = _flush
return rw
评论列表
文章目录