找不到保存进度的 csv 数据文件(Python/Pyinstaller base,可能是 sys.MEIPASS 或 NSIS?)

Cannot find csv data file where progress is saved (Python/Pyinstaller base, possibly sys. MEIPASS or NSIS ?)

限定符对 Python 很新。 我写了一些 Python 代码导入 pandas、selenium、sys、os、tkinter 和 pillow,然后与 pyinstaller 和 NSIS 放在一起。 该程序使用 csv 文件作为输入,并根据用户操作对其进行更新。更新将在内部保存,因此如果用户退出,他们可以从中断的地方继续。 一切都正确保存,用户进度保存并正确获取,如果我 "download CSV" 文件是最新的。从功能上讲,这一切都很完美。

但是,当程序是运行时,它开始的csv不是它保存进度的地方。它保持不变。 "progress" 数据被保存在别处从数据安全的角度来看,我需要知道它保存在哪里。我找了几个小时都没找到。

即使我卸载程序并重新安装,它仍然会记住进度。在没有 Python 等

的机器上也进行了测试

我正在使用:

if getattr(sys, 'frozen', False):
    CurrentPath = sys._MEIPASS
else:
    CurrentPath = os.path.dirname(__file__)

难道是这样吗? 保存行本身是相当标准的:

df.to_csv('file_s.csv',encoding='utf-8', index=False)

我唯一的想法是它与 NSIS 安装程序和卸载脚本有关。很少有针对初学者的教程。如果社区认为这是问题所在,我认为最好提出一个包含相关信息的新问题。os

如果这太含糊,我们深表歉意,很乐意提供更多需要的信息!

您正在使用标准 "if frozen" 方法定义 CurrentPath 变量,看起来不错。但是,您在保存文件时似乎并没有使用它。

尝试将其与要保存的文件名显式连接

df.to_csv(os.path.join(CurrentPath,'file_s.csv'),encoding='utf-8', index=False)

请注意,当您 运行 作为可执行文件时,sys._MEIPASS 将是一个临时文件夹(至少在 Windows 上),类似于 C:\Users\<you>\AppData\Local\Temp\MEIXXX