m13*_*13r 6 python tar tarfile
在tarfile的官方python文档中,我看不到创建的tarfile
tarfile.open('example.tar', 'r:*')
Run Code Online (Sandbox Code Playgroud)
一旦你不再需要它就应该关闭.
在其他一些示例中(例如此处),您经常会看到tar文件无法关闭.
如果我在某些函数中更频繁地打开相同的tarfile而不总是关闭它,我会遇到问题吗?
def example(name):
f = tarfile.open(name, 'r:*')
# do some other stuff
# not closing the tarfile object
return result
example('example.tar')
example('example.tar')
Run Code Online (Sandbox Code Playgroud)
在'r'而不是'w'模式下打开tarfile是否有区别(明显的读/写除外)?
在示例中,如果使用写入模式'w'打开它们,它们总是关闭tarfile吗?
Mar*_*ers 10
是的,一个TarFile对象(什么tarfile.open()返回)可以而且应该被关闭.
您可以在对话框中将对象用作上下文管理器with,以使其自动关闭:
with tarfile.open(name, 'r:*') as f:
# do whatever
return result
Run Code Online (Sandbox Code Playgroud)
甲TarFile对象应该被当作在Python任何其他文件对象; 当清除对它的所有引用时,你可以依赖文件对象自动关闭,但明确地关闭它会好得多.当文件打开以进行写入时,这会同样适用.
如果使用mode ='w'打开它,则关闭它的原因是,如果不使用它,则对该文件的实际写操作可能会保留在缓冲中,并且对该文件的后续用户不可见。因此,如果您希望写入文件并稍后在同一程序中读取它,则必须在两者之间将其关闭。Python中的常规文件对象也是如此。
您应该始终关闭文件对象。当它们可写时,这是非常重要的。