Pandas ExcelWriter .save() 出错;权限错误 [WinError 32]

Posted

技术标签:

【中文标题】Pandas ExcelWriter .save() 出错;权限错误 [WinError 32]【英文标题】:Error with Pandas ExcelWriter .save(); Permission Error [WinError 32] 【发布时间】:2018-11-02 01:47:10 【问题描述】:

我正在尝试使用 ExcelWriter 写出文档并遇到以下问题:

当我运行我的程序时,它有时会给出如下警告:

PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\...\AppData\\Local\\Temp\\tmpk6915sp2'

据说错误来自ExcelWriter.save()方法。

我尝试使用ExcelWriter的.close()方法,但有时问题仍然存在。有时我的意思是,如果我多次重新运行程序,程序就会像没有错误一样运行。

我不明白的是为什么它/有时/仍然存在,我该如何解决?

我遇到了几个相同错误的线程,但它们与 ExcelWriter 无关,希望有人能帮助我。提前致谢!

【问题讨论】:

当错误发生和未发生时,您的路径是否相同?也许您试图访问受管理员保护的文件? 您当时是否有可能在 Excel 中打开了目标文件?这是此类问题的最常见原因。 不,我当时没有打开目标文件。而且,我认为(临时)文件名不同,但目录是相同的。 目前我做的是在我运行程序之前删除临时文件,当问题发生时 你能把你正在使用的代码。尝试在我的计算机上复制它可能会有所帮助,以更好地帮助您。 【参考方案1】:

是的,我的最新应用程序(在 Windows 中开发)也遇到了类似的问题。就我而言,如果发生异常,我必须再次重新运行,直到成功。所以我按照下面的sn-p暂时绕过了这种情况。

  for count in range(1, 11):
    try:
        print('[+] Running - '.format(count))
        # report creation function goes here
        print('[+] Success excel file created.')
        break
    except Exception as error:
        print('[-] Exceptional error - '.format(error))
        print('[-] Re-running - '.format(count))
        continue

【讨论】:

以上是关于Pandas ExcelWriter .save() 出错;权限错误 [WinError 32]的主要内容,如果未能解决你的问题,请参考以下文章