对于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安装程序和卸载脚本有关。对于初学者来说,这方面的教程少得可怜。如果社区认为这是一个问题,我认为最好我发布一个新的问题,并附上相关信息
道歉,如果这是太含糊和高兴提供更多需要的信息
您正在使用标准的“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
的地方创建相关问题 更多 >
编程相关推荐