我希望用python直接在.tar.gz文件中编写一个文本文件(OnTheFly)。最好的是像fobj = open (arg.file, "a")
这样的解决方案来附加文本。
我想将此功能用于您不允许拆分的长日志文件。
提前致谢
答案 0 :(得分:4)
是的,这是可能的,但很可能不是您想要使用它的方式。
.tar.gz
实际上是两件事:gz
或gzip
用于压缩,但此工具只能压缩单个文件,所以如果如果要将多个文件压缩到压缩存档,则需要先加入这些文件。这是tar
所做的,它需要多个文件并将它们连接到存档。
如果您有一个长日志文件,只需gzip
ing就可以了。为此,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可能不是最佳的日志记录解决方案。