Python 如何确保io模块是';t关闭时在垃圾收集之前关闭

Python 如何确保io模块是';t关闭时在垃圾收集之前关闭,python,garbage-collection,Python,Garbage Collection,我有一个带有\uu del\uu方法的对象。我希望在解释器关闭时调用此方法。\uuu del\uu方法将打开并写入特定文件。在全局垃圾回收之前,io模块似乎已关闭 #!/usr/bin/env python3 class Foo: def __del__(self): with open('/tmp/doge_poop', 'w') as f: f.write('corn kernel') foo=Foo() 运行上述MWE可得出以下结果: Ex

我有一个带有
\uu del\uu
方法的对象。我希望在解释器关闭时调用此方法。
\uuu del\uu
方法将打开并写入特定文件。在全局垃圾回收之前,
io
模块似乎已关闭

#!/usr/bin/env python3
class Foo:
    def __del__(self):
        with open('/tmp/doge_poop', 'w') as f:
            f.write('corn kernel')
foo=Foo()
运行上述MWE可得出以下结果:

Exception ignored in: <function Foo.__del__ at 0x7f4984176310>
Traceback (most recent call last):
  File "b.py", line 4, in __del__
NameError: name 'open' is not defined
中忽略的异常:
回溯(最近一次呼叫最后一次):
文件“b.py”,第4行,删除__
NameError:未定义名称“open”