这是我从一个更大的程序中获得的片段。此保存功能发生错误。
def save(self):
"""Write the current configuration object (self) to the configuration file."""
try:
open(self.config_path, "w", encoding="utf-8")
with open(self.config_path, "w", encoding="utf-8") as f:
super().write(f)
except PermissionError:
sys.exit()
对于我和许多其他人来说,这个功能似乎正在做它应该做的事情。然而今天,我收到了我的程序用户的电子邮件,他给了我以下错误报告。
第29行是with open(self.config_path, "w", encoding="utf-8") as f:
行。
有两件事让我感到奇怪。
首先,config\\config.ini
是与之前的行完全相同的参数,哎呀,整个open()
调用完全相同。
第二,可能是无关的,但我仍然注意到它。在错误报告中,目录结构是我个人电脑的目录结构,而不是用户的我认为这与cx_freeze的工作原理有关。
我的第一个文件打开调用未正确关闭会导致此问题吗?它可以在数千个系统上正常工作,这个系统不可能,但不太可能。
注意:我知道第一个open()调用应该包含在if file.exists:
语句中。这只是生产代码。
有人知道发生了什么事吗?