Python 将文本写入 .tar.gz

标签 python python-2.7 tar logfile

我正在寻找使用 python 直接在 .tar.gz 文件中写入文本文件 (OnTheFly) 的可能性。最好的解决方案是 fobj = open (arg.file, "a") 来附加文本。

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

提前致谢

最佳答案

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

.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-archive,你可以使用Python的tarfile模块。但是,此模块不支持附加 到文件(模式 'a'),因此 tarfile 可能不是日志记录的最佳解决方案。

关于Python 将文本写入 .tar.gz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31240550/

相关文章:

python - 哪个是更新所有 anaconda python 包的正确命令?

python - 正则表达式子文本 block 在表达式的开头具有精确的字符串(python)

python - GeoDjango:如何获得两点之间的距离?

python - Kivy错误(python 2.7): sdl2 import error

python - 如何检查是否可以使用 tarfile 模块写入 tar 文件?

build - 我如何使用伪造的 "the f# way"创建一个 tar 存档

python - 在 Linux 中从 .tar.gz 中提取 .tar

python - 仅将唯一项附加到 python 列表?

Python 'requests' 包在验证设置为 False 时抛出 SSL 异常(在 Apache Nifi 中)

excel - 如何使用 pandas to_exel 将 'utf-8' 格式的字符串保存为 .xlsx(to_csv 能够将其保存为 .csv)