Python OSError:参数无效,代码以前运行正常

Python OSError:参数无效,代码以前运行正常,python,file,cx-freeze,Python,File,Cx Freeze,这是我从一个更大的程序中得到的一个片段。此保存函数中出现错误 def save(self): """Write the current configuration object (self) to the configuration file.""" try: open(self.config_path, "w", encoding="utf-8")

这是我从一个更大的程序中得到的一个片段。此保存函数中出现错误

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行是打开的
(self.config_路径,“w”,encoding=“utf-8”)作为f:

我觉得有两件事很奇怪。 第一件事是,
config\\config.ini
与前一行中的参数完全相同,见鬼,整个
open()
调用完全相同。 第二,可能是无关的,但我还是注意到了。在错误报告中,目录结构是我个人电脑的目录结构,而不是用户的目录结构。我想这与cx\U freeze的工作方式有关

这个问题可能是由于我的第一个文件打开调用没有正确关闭造成的吗?它可以在数千个系统上正常工作,这一个不可能,但不太可能

注意:我知道第一个open()调用应该包装在一个
if文件中。exists:
语句。这只是生产代码


有人知道发生了什么吗?

Windows不允许您将同一文件打开两次,所以这可能是问题所在。不管怎样,你为什么要打开文件两次?@ThomasK我打开了两次文件以确保它存在,这样做很愚蠢,现在我又看了一遍。问题是,它在我自己的Windows7电脑上工作,在我的Windows8笔记本电脑上工作正常,而且从来没有人通知过我这个问题,所以奇怪的是,它发生在这个人身上,而且只发生在他身上。他可以将文件设置为只读或其他形式吗?@ThomasK我要求用户删除config.ini文件,我的程序应该会自动重新创建该文件。(第一个
打开()。它是通过第一次调用
open()
以编程方式创建的,因此如果它突然变成只读,那将非常奇怪。@Azeirah这是检查文件存在性的正确方法:
os.path.exists(filename)