gzip.open ("file.tar.gz", "rb") против tarfile.open ("file.tar.gz");извлечь все() - PullRequest
0 голосов
/ 07 октября 2018

Если у меня есть один файл - 'file.txt' tarred и gzipped, в чем разница между:

    with tarfile.open('file.tar.gz') as tar:
        tar.extractall()
        with open('file.txt', 'rb') as f:
            x =  f.read()

и

    with gzip.open('file.tar.gz', 'rb') as f:
        x =  f.read()

В первом я получаю вывод безстранные шестнадцатеричные символы, которые появляются во втором.f.read внутри gzip читает фактический файл .tar вместо чтения простого файла, и эти символы являются заголовками tar-файлов?

1 Ответ

0 голосов
/ 07 октября 2018

Правильное предположение.Tar просто склеивает файлы без сжатия, а gzip может сжимать только отдельные файлы.Вы читаете tar после распаковки с помощью gzip.open

...