在tarfile的官方python文档中,我看不到使用以下命令创建的tarfile
tarfile.open('example.tar', 'r:*')
一旦不再需要,应将其关闭。
在其他一些示例(例如here)中,您经常会看到tarfile不被关闭。
如果我在某些函数中更频繁地打开相同的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')
以'r'而不是'w'模式打开tarfile是否有区别(明显的读/写除外)?
原因在示例中,如果以写方式“w”打开了tarfile,它们总是关闭tarfile?
最佳答案
是的,可以并且应该关闭 TarFile
object(tarfile.open()
返回的内容)。
您可以在with
语句中将该对象用作上下文管理器,以使其自动关闭:
with tarfile.open(name, 'r:*') as f:
# do whatever
return result
应当将
TarFile
对象与Python中的任何其他文件对象一样对待。您可以依赖于在清除所有对文件对象的引用后自动关闭它,但是最好显式关闭它。这是双重适用的,因此在打开文件进行写入时。关于python - Python的tarfile.open是否需要close()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25113191/