Python: создайте сжатый tar-файл для потоковой записи - PullRequest
6 голосов
/ 15 апреля 2011

Мне нужно создать текстовый файл tar.gzipped. Есть ли способ создать файл для постоянной записи (чтобы можно было сделать что-то вроде compressedFile.write("some text")), или мне нужно сначала создать необработанный текстовый файл и сжать его потом?

Это будет весьма прискорбно, поскольку файл должен быть очень длинным и хорошо сжимаемым.

1 Ответ

5 голосов
/ 15 апреля 2011

Вот пример того, как написать сжатый tar-файл из скрипта Python:

import StringIO
import tarfile

tar = tarfile.open('example.tar.gz', 'w:gz')

# create a file record
data = StringIO.StringIO('this is some text')
info = tar.tarinfo()
info.name = 'foo.txt'
info.uname = 'pat'
info.gname = 'users'
info.size = data.len

# add the file to the tar and close it
tar.addfile(info, data)
tar.close()

Результат:

% tar tvf example.tar.gz
-rw-r--r--  0 pat    users       17 Dec 31  1969 foo.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...