使用 python 将目录压缩为内存中的 tar.gz 文件

Compress directory into tar.gz file in memory with python

正在尝试将文件系统目录压缩为 tar.gz 文件并将其保存在内存中。为什么,因为我不想用临时文件污染文件系统。

我正在查看 tarfile 包,但我似乎没有完成:

import io
import tarfile

fo = io.BytesIO()
tar = tarfile.open(fileobj=fo, mode="w:gz")
tar.add(path)

似乎没有像我预期的那样工作...

通过这段代码解决了:

import io
import tarfile

path = "/tmp/foodir" # this is a directory

file_io = io.BytesIO()
with tarfile.open(fileobj=file_io, mode="w|gz") as tar:
    arcname = os.path.basename(path). # keep path relative (optional)
    tar.add(path, arcname=arcname)
file_io.seek(0)