Python将文本写入.tar.gz

时间:2015-07-06 07:59:29

标签: python python-2.7 tar logfile

我希望用python直接在.tar.gz文件中编写一个文本文件(OnTheFly)。最好的是像fobj = open (arg.file, "a")这样的解决方案来附加文本。

我想将此功能用于您不允许拆分的长日志文件。

提前致谢

1 个答案:

答案 0 :(得分:4)

是的,这是可能的,但很可能不是您想要使用它的方式。

.tar.gz实际上是两件事:gzgzip用于压缩,但此工具只能压缩单个文件,所以如果如果要将多个文件压缩到压缩存档,则需要先加入这些文件。这是tar所做的,它需要多个文件并将它们连接到存档。

如果您有一个长日志文件,只需gziping就可以了。为此,Python有gzip模块,您可以直接写入压缩文件:

import gzip
with gzip.open('logfile.gz', 'a') as log:
    # Needs to be a bytestring in Python 3
    log.write(b"I'm a log message.\n")

如果您确实需要写入tar - 存档,则可以使用Python的tarfile模块。但是,此模块不支持附加到文件(模式'a'),因此tarfile可能不是最佳的日志记录解决方案。