如何在 Python 中压缩已处理的文本文件?

How to compress a processed text file in Python?

我有一个文本文件,我不断地向其追加数据。处理完成后,我需要 gzip 文件。我尝试了几个选项,例如 shutil.make_archivetarfilegzip,但最终无法做到。有没有简单的方法可以在不实际写入文件的情况下压缩文件?

假设我有 mydata.txt 文件,我希望将其压缩并保存为 mydata.txt.gz.

如果你想压缩一个文件而不写入它,你可以 运行 一个 shell 命令,例如 gzip 使用 Python 库 subprocesspopenos.system.

我没有看到问题。你应该能够使用例如gzip module 很好,像这样:

inf = open("mydata.txt", "rb")
outf = gzip.open("file.txt.gz", "wb")
outf.write(inf.read())
outf.close()
inf.close()

文件被覆盖没有问题,给gzip.open()的名字完全独立于给普通open()的名字。