我正在寻找使用 python 直接在 .tar.gz 文件中写入文本文件 (OnTheFly) 的可能性。最好的解决方案是 fobj = open (arg.file, "a")
来附加文本。
我想将此功能用于不允许拆分的长日志文件。
提前致谢
最佳答案
是的,这是可能的,但很可能不是您想要的使用方式。
.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
-archive,你可以使用Python的tarfile
模块。但是,此模块不支持附加 到文件(模式 'a'
),因此 tarfile 可能不是日志记录的最佳解决方案。
关于Python 将文本写入 .tar.gz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31240550/