我正在编写一个带有GUI(wxPython)的Python程序。此程序与RPC服务器交互。我想从GUI创建临时文件,可以在Windows上通过RPC服务器读取。
tempfile模块似乎不能满足我的需求。我想写入临时文件,关闭它(因此RPC服务器可以读取它,这里Windows与Unix不同),并且仅在程序结束时(或者例如模型(模型 - 视图-...)被销毁)从文件系统中删除临时文件。
由于我的程序的(GUI)结构,我不知道在哪里插入任何try:finally块,除非在 __ main __ 之后。但是我不能将临时文件绑定到模型上?
我应该触摸模型的 __ del __ 方法吗?那究竟是怎么回事?在任何地方,我都读过不要触摸这种方法......
由于
关于RPC服务器:这是我无法修改的封闭软件。
答案 0 :(得分:0)
我会创建一种保存临时文件路径的变量。像这样:
self.myTempFile = /path/to/temp.txt
然后将框架绑定到wx.EVT_CLOSE:
self.Bind(wx.EVT_CLOSE, self.onClose)
在onClose方法中,您将尝试删除临时文件,然后您将调用框架的Destroy()方法。你不能调用它的Close方法,因为它只是递归地调用onClose。