【问题标题】:Python remove temporary files using MVC frameworkPython使用MVC框架删除临时文件
【发布时间】:2013-11-01 11:02:20
【问题描述】:

我正在编写一个带有 GUI (wxPython) 的 Python 程序。该程序与 RPC 服务器交互。我想从 GUI 创建临时文件,可以在 Windows 上由 RPC 服务器读取。

tempfile 模块似乎不能满足我的需要。我想写入临时文件,关闭它(以便 RPC 服务器可以读取它,这里 Windows 与 Unix 不同),并且仅在程序结束时(或者例如模型(模型视图-...)被破坏)从文件系统中删除临时文件。

由于我的程序的 (GUI) 结构,我不知道在哪里插入任何 try: finally 块,除非紧跟在 __main__ 之后。但是我无法将临时文件绑定到模型?

要不要触摸模型的__del__方法?那么究竟如何呢?在任何地方,我都读过不要碰这种方法...

谢谢

关于 RPC 服务器:这是我无法修改的封闭软件。

【问题讨论】:

  • 为什么不直接与 RPC 服务器交互呢?

标签: python windows user-interface wxpython temporary-files


【解决方案1】:

我会创建某种变量来保存临时文件的路径。像这样的:

self.myTempFile = /path/to/temp.txt

然后将框架绑定到 wx.EVT_CLOSE:

self.Bind(wx.EVT_CLOSE, self.onClose)

在您的 onClose 方法中,您将尝试删除临时文件,然后您将调用框架的 Destroy() 方法。您不能调用它的 Close 方法,因为它只会递归地调用 onClose。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多