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]的主要内容,如果未能解决你的问题,请参考以下文章

使用 Pandas Excelwriter 写入 StringIO 对象?

Pandas ExcelWriter 是不是适用于 excel 365,或者它支持哪个版本的 excel

Pandas ExcelWriter Openpyxl 正在创建一个必须恢复的损坏文件

有没有办法在使用 pandas Excelwriter 时为某些特定行设置列的宽度?

如何在 pd.ExcelWriter 中使用 xlsxwrite 引擎在底部的 python 中编写新行?

20 个短小精悍的 pandas 骚操作