【问题标题】:how to persist/store data in executable compiled with pyinstaller如何在使用 pyinstaller 编译的可执行文件中持久化/存储数据
【发布时间】:2019-06-21 02:38:47
【问题描述】:

我需要在本地存储用户输入到我的 exe 中的一些基本数据。该程序是使用 pyinstaller 编译的,之前使用 os open 方法将数据保存到 txt 文件。我的理解是 macOS(我的操作系统虽然与 Windows 的交叉兼容性很好)会锁定可执行文件,因此它们可能不会对文件进行任何更改。该程序当前确实保存了数据,但是当再次运行可执行文件时,旧数据不再可访问。

应用程序总是在本地存储东西似乎很明显,如何在 python/pyinstaller 组合中专门持久化数据?

抱歉,如果这是一个简单的问题,它确实看起来很简单,但我在任何地方都找不到相关文档。

【问题讨论】:

  • 无法在应用中持久化数据,需要将数据保存在单独的文件或数据库中。
  • 感谢您的回复。当您说应用程序时,您是指可执行文件本身还是只是 python 脚本?我知道在 python 脚本中持久化数据是不可能的,但正在寻找在可执行文件中持久化的方法(可能通过在可执行文件中包含可写文件或数据库。
  • 最后是一样的,如果它对脚本不起作用,它对可执行文件不起作用。所以需要在~/Library/Application Support/yourApplication左右创建一个可写文件来持久化数据。

标签: python local-storage executable pyinstaller


【解决方案1】:

你可以使用

os.path.expanduser('~user')

跨平台获取用户主目录,见How to find the real user home directory using python?

您的应用程序应该在用户主目录中具有写入权限,因此您可以让它在 How to store Python application data 之后创建和修改数据文件。

【讨论】:

    猜你喜欢
    • 2012-06-10
    • 1970-01-01
    • 2011-02-06
    • 2011-11-24
    • 1970-01-01
    • 2014-03-30
    • 2022-08-16
    • 2011-09-03
    • 1970-01-01
    相关资源
    最近更新 更多