如何在使用 pyinstaller 创建 exe 文件时将更改永久保存到捆绑文件夹中的文件中

问题描述 投票:0回答:1

我有我的 exe 应用程序,它是用 pyinstaller 创建的,并在创建运行良好的 exe 时捆绑了一个文件夹。为了访问我在创建 exe 时捆绑的文件夹中的任何文件,我可以从变量

sys._MEIPASS
访问这些文件,因为在
Temp/_MEI96522

中创建了临时目录

现在,当我对文件夹中的文件进行更改时,当我使用软件时,它会保留在那里,但现在当我关闭软件并再次打开软件时,我在之前的软件会话中所做的更改都消失了。该文件现在处于其原始形式,与之前将包含该文件的文件夹捆绑在 exe 中时一样。

我想要做的是对文件进行更改,并且需要保存更改,以便每次关闭后打开软件时这些更改都保留在那里。
有什么办法可以做到这一点,同时保持文件夹与 exe 捆绑在一起。

python python-3.x pyinstaller exe packaging
1个回答
0
投票

我找到了解决这个问题的方法。为了使写入文件能够在 pyinstaller --onefile exe 中工作,它需要绝对路径。因此,我们确定正在运行的可执行文件的位置,以便我们可以获得 exe 的目录

import sys
import os

def get_executable_dir():
    if getattr(sys, 'frozen', False):  # Check if the script is running as a standalone executable
        return os.path.dirname(sys.executable)
    else:
        return os.path.dirname(os.path.abspath(__file__))

executable_dir = get_executable_dir()

with open(os.path.join(executable_dir, "config.txt"), "w") as f:
    f.write('config content')

此代码将获取主 .exe 的绝对路径,它允许您将配置文件保存在同一目录中。

© www.soinside.com 2019 - 2024. All rights reserved.