Python Glossary English

все Python 3tarfileисключение

tarfile.StreamError

исключения

Исключение tarfile: потоковому архиву (режим с '|') нужна операция, требующая перемотки назад.

Синтаксис

except tarfile.StreamError:

Режимы 'r|gz' и 'w|gz' читают и пишут строго вперёд — так можно работать с сокетом или stdin. Но после getmembers() вернуться к уже пройденному члену нельзя: extractfile() даёт StreamError «seeking backwards is not allowed». В потоке члены обрабатывают по одному в цикле for member in tar, сразу читая каждый.

Примеры

import tarfile
with open('a.txt', 'w', encoding='utf-8') as f:
    f.write('data')
with tarfile.open('s.tar', 'w') as tar:
    tar.add('a.txt')
with tarfile.open('s.tar', 'r|') as tar:
    first = tar.getmembers()[0]
    try:
        tar.extractfile(first).read()
    except tarfile.StreamError as e:
        print(e)  # → seeking backwards is not allowed

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности