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/

10-16 10:38