2024-10-01 09:26:56 发布
网友
假设我们有一个tempfile,我们可以写一些输出。但出于某种奇怪的原因,我们希望它能被一些归档技术压缩,比如tar
我所说的tempfile是指没有可见名称的创建者临时文件(). 有什么想法吗? 我的第一印象包括一些软性和类继承性。。 有没有更简单的方法?在
^{}的fileobj参数正是为了这个目的:你可以传递任何一个支持写操作的类似文件的对象,tarfile会很乐意地使用它,而不是尝试接触文件系统。请注意,这样的文件应该以二进制模式而不是文本模式打开(默认情况下,tempfile.TemporaryFile会这样做)。在
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())
或者
将f.name保留在文件系统上,并在以后探索其内容。在
f.name
^{} 的
fileobj
参数正是为了这个目的:你可以传递任何一个支持写操作的类似文件的对象,tarfile
会很乐意地使用它,而不是尝试接触文件系统。请注意,这样的文件应该以二进制模式而不是文本模式打开(默认情况下,tempfile.TemporaryFile
会这样做)。在类似地,^{} 的第一个参数可以是类似文件的对象。在
所以你可以:
或者
^{pr2}$将
f.name
保留在文件系统上,并在以后探索其内容。在相关问题 更多 >
编程相关推荐