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

2024-04-25 19:33:41 发布

您现在位置:Python中文网/ 问答频道 /正文

对于Python来说,这个限定符是非常新的。 我编写了一些Python代码,导入pandas、selenium、sys、os、tkinter和pillow,然后与pyinstaller和NSIS组合在一起。 该程序使用csv文件作为输入,并根据用户操作进行更新。更新将保存在内部,因此如果用户退出,他们可以继续他们离开的地方。 这一切都保存正确,用户进度保存和拿起正确,如果我“下载CSV”的文件是最新的。从功能上讲,这一切都很完美

但是,当程序运行时,它开始使用的csv不在保存进度的位置。它保持不变。从数据安全的角度来看,“进度”数据保存在其他地方,我需要知道它保存在哪里。经过几个小时的寻找,我找不到它

即使我卸载程序并重新安装,它仍能记住进度。在没有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安装程序和卸载脚本有关。对于初学者来说,这方面的教程少得可怜。如果社区认为这是一个问题,我认为最好我发布一个新的问题,并附上相关信息

道歉,如果这是太含糊和高兴提供更多需要的信息


Tags: 文件csv代码用户程序信息falsepandas
1条回答
网友
1楼 · 发布于 2024-04-25 19:33:41

您正在使用标准的“if freezed”方法定义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的地方创建

相关问题 更多 >