将tempfile和tarfile与python结合起来?

2024-10-01 09:26:56 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我们有一个tempfile,我们可以写一些输出。但出于某种奇怪的原因,我们希望它能被一些归档技术压缩,比如tar

我所说的tempfile是指没有可见名称的创建者临时文件(). 有什么想法吗? 我的第一印象包括一些软性和类继承性。。 有没有更简单的方法?在


Tags: 方法名称原因tartempfile技术创建者继承性
1条回答
网友
1楼 · 发布于 2024-10-01 09:26:56

^{}fileobj参数正是为了这个目的:你可以传递任何一个支持写操作的类似文件的对象,tarfile会很乐意地使用它,而不是尝试接触文件系统。请注意,这样的文件应该以二进制模式而不是文本模式打开(默认情况下,tempfile.TemporaryFile会这样做)。在

类似地,^{}的第一个参数可以是类似文件的对象。在

所以你可以:

with tempfile.TemporaryFile(suffix='.tar.gz') as f:
    with tarfile.open(fileobj=f, mode='w:gz') as tar:
        tar.add(…)

    f.flush()
    f.seek(0)
    print(f.read())

或者

^{pr2}$

f.name保留在文件系统上,并在以后探索其内容。在

相关问题 更多 >