Windows应用程序编程&;wxPython

Windows应用程序编程&;wxPython,python,windows,wxpython,Python,Windows,Wxpython,在开发我的一个项目时,我意识到我需要跨会话的某种程度的持久性,例如,当用户执行应用程序时,更改一些首选项,然后关闭应用程序。下次用户执行应用程序时,无论是在重新启动后还是15分钟后,我希望能够保留已更改的首选项 我的问题与这种坚持有关。是否使用win32 API或MFC框架编程应用程序。。或者使用wxPython或wxRuby等更高级语言的更新工具,如何维护我所指的持久性类型?它是作为写入磁盘的临时文件完成的吗?它是否保存到某个注册表设置中?有没有其他我不知道的存储层呢?有很多不同的方法来实现这

在开发我的一个项目时,我意识到我需要跨会话的某种程度的持久性,例如,当用户执行应用程序时,更改一些首选项,然后关闭应用程序。下次用户执行应用程序时,无论是在重新启动后还是15分钟后,我希望能够保留已更改的首选项


我的问题与这种坚持有关。是否使用win32 API或MFC框架编程应用程序。。或者使用wxPython或wxRuby等更高级语言的更新工具,如何维护我所指的持久性类型?它是作为写入磁盘的临时文件完成的吗?它是否保存到某个注册表设置中?有没有其他我不知道的存储层呢?

有很多不同的方法来实现这一点,这些方法已经发展了很多年

这些方法包括(但不限于):

  • 注册表项
  • INI文件
  • XML文件
  • 简单二进制/文本文件
  • 数据库
  • 现在,大多数人使用驻留在特定于用户的AppData文件夹中的XML文件来执行这类操作。如何做是你的选择。例如,对于简单的事情,数据库可能会被过度使用,而对于大型持久化对象,注册表将不合适。你必须看到你在做什么,并相应地去做


    在这个主题上

    有很多不同的方法可以做到这一点,这些方法经过多年的演变

    这些方法包括(但不限于):

  • 注册表项
  • INI文件
  • XML文件
  • 简单二进制/文本文件
  • 数据库
  • 现在,大多数人使用驻留在特定于用户的AppData文件夹中的XML文件来执行这类操作。如何做是你的选择。例如,对于简单的事情,数据库可能会被过度使用,而对于大型持久化对象,注册表将不合适。你必须看到你在做什么,并相应地去做


    关于这个话题,我建议分两步来做

  • 第一步是保存pref。作为 字符串,你可以

    (a) 使用任何xml库或输出xml 手动输出字符串并读取 类似于字符串

    b) 只需使用pickle模块将prefs对象作为字符串转储即可

    c) 以某种方式从prefs生成一个字符串,您可以将其读回prefs,例如使用yaml、config、JSON等。实际上,当simplejson使其变得如此简单时,JSON是一个不错的选择

  • 一旦您准备好了转换字符串的方法和转换字符串的方法,您只需要将其存储在持久化的地方,并且您可以在下次读回,因为您可以这样做

    a) 使用wx.Config将其保存到windows中的注册表和其他位置(取决于平台),这样您就不必担心它保存在哪里,您只需以独立于平台的方式读回值即可但如果您愿意,可以直接使用wx.Config保存阅读首选项。

    b) 直接保存prefs。字符串指向操作系统分配给应用程序的文件夹中的文件,例如windows中的应用程序数据文件夹


  • 保存为字符串的好处是,与使用wx.Config保存相比,您可以方便地更改将来保存数据的位置,例如,如果需要上载prefs,则可以在将来更改数据的保存位置。你可以上传pref。字符串。

    我建议分两步进行

  • 第一步是保存pref。作为 字符串,你可以

    (a) 使用任何xml库或输出xml 手动输出字符串并读取 类似于字符串

    b) 只需使用pickle模块将prefs对象作为字符串转储即可

    c) 以某种方式从prefs生成一个字符串,您可以将其读回prefs,例如使用yaml、config、JSON等。实际上,当simplejson使其变得如此简单时,JSON是一个不错的选择

  • 一旦您准备好了转换字符串的方法和转换字符串的方法,您只需要将其存储在持久化的地方,并且您可以在下次读回,因为您可以这样做

    a) 使用wx.Config将其保存到windows中的注册表和其他位置(取决于平台),这样您就不必担心它保存在哪里,您只需以独立于平台的方式读回值即可但如果您愿意,可以直接使用wx.Config保存阅读首选项。

    b) 直接保存prefs。字符串指向操作系统分配给应用程序的文件夹中的文件,例如windows中的应用程序数据文件夹


  • 保存为字符串的好处是,与使用wx.Config保存相比,您可以方便地更改将来保存数据的位置,例如,如果需要上载prefs,则可以在将来更改数据的保存位置。你可以上传pref。字符串。

    谢谢,非常简洁和详细。配置对象允许我以安全的方式存储数据,而无需担心文件、存储位置或其他问题。这样我就有了一个OO接口,其他的一切都可以处理。+1到JSON-我做了很多windows应用程序,发现AppData文件夹中的一个简单JSON文件非常完美。非常灵活,便于支持人员使用,Python 2.6内置,非常完美。也没有像酸洗那样出现随机腐败问题,也更容易调试。谢谢,非常简洁和详细。配置对象允许我以安全的方式存储数据,而无需担心文件、存储位置或其他问题。这样我就有了一个OO接口,其他的一切都可以处理。+1到JSON-我做了很多windows应用程序,发现AppData文件夹中的一个简单JSON文件非常完美。非常灵活,便于支持人员使用,Python 2.6内置,非常完美。也没有像酸洗那样出现随机腐败问题,也更易于调试。谢谢您的建议。最终,配置是最有意义的。我可以从程序内部连接它,它会自行处理。无需担心文件。谢谢您的建议。最终,配置是最有意义的。我可以从