Python:创建用于流式写入的压缩tar文件
我需要生成一个tar.gz格式的文本文件。请问有没有办法直接创建一个可以不断写入的文件(比如可以像这样使用 compressedFile.write("一些文本")
)?还是说我必须先创建一个普通的文本文件,然后再进行压缩?
这样做会很麻烦,因为这个文件应该很长,而且压缩效果应该很好。
1 个回答
6
下面是一个例子,展示了如何通过Python脚本来写一个压缩的tar文件:
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