繁体   English   中英

PermissionError: [WinError 32] 该进程无法访问该文件,因为它正被另一个进程使用:.xlsx

[英]PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: .xlsx

我正在尝试运行我继承的 python 脚本。 我不是程序员,但足够了解。 问题是这个脚本在我的旧机器上运行完美,但仍然是 64 位机器和 Office 365 - Excel。

当我迁移到新机器时,我不断收到错误消息。 我需要一些帮助来修复它,以便它可以在新机器上运行。 以下是错误和脚本失败的部分。

PermissionError Traceback (最近调用 last) ~\AppData\Local\Temp/ipykernel_16060/1139512431.py in 121 122 #Delete unneeded xlsx file --> 123 os.remove("C:\MarketCentre Deals Report\Data Files\MarketCentreDealsReport_West_" +datetime.datetime.now().strftime("%m.%d.%Y")+".xlsx") 124 125 #################### ################################################## ################################################## ##

PermissionError: [WinError 32] 该进程无法访问该文件,因为它正被另一个进程使用:'C:\MarketCentre Deals Report\Data Files\MarketCentreDealsReport_West_03.07.2022.xlsx'


出错的代码:

 #Resave final file as xlsb to reduce file size
excel = win32com.client.Dispatch("Excel.Application")
doc = excel.Workbooks.Open("C:\\MarketCentre Deals Report\\Data Files\\MarketCentreDealsReport_East_"+datetime.datetime.now().strftime("%m.%d.%Y")+".xlsx")
doc.SaveAs( "C:\\MarketCentre Deals Report\\Data Files\\MarketCentreDealsReport_East_"+datetime.datetime.now().strftime("%m.%d.%Y")+".xlsb", 50 )

您收到的错误是由于文件已锁定。 由于您是从另一台机器迁移过来的,因此可能有许多因素会影响新代码,从细微的运行时更改(很少见,但如果您也更改主要版本也会发生)到新机器上的不同软件交互.

罪魁祸首通常是反恶意软件,它在扫描文件时可能会有点慢,而扫描文件是专门锁定的,以防止访问可疑文件)。

或者简单地说,过去在以前的机器上工作的工作流程不再适用于这台机器。 为了进行调查,首先使用 Process Explorer,如How to find out which processes have folder or file locked? 回答,您应该能够跟踪有问题的过程。

如果这不能解决问题,您可以使用ProcMon来捕获在您的请求失败的精确时刻机器上发生的任何事情。 您可以查看The Ultimate Guide to Procmon以获取有关该工具的更多文档和帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM