您好我正在检查excel文件是否被修改,如果它基本上保存为其他东西并打开它。所以它第一次工作,但是第二次修改文件时,我收到错误:系统找不到指定的文件:' C:\ example.xlsx'
有时它也会抛出:权限被拒绝:' C:\ Todolist2.xlsx'
请帮忙。新手在这里。谢谢
import time, os.path, os, openpyxl
from openpyxl import Workbook
currentFD = os.stat("C:\\example.xlsx")
while True:
modDate = os.stat("C:\\example.xlsx")
if (modDate > currentFD):
print('yes it does')
wb=openpyxl.load_workbook("C:\\example.xlsx")
wb.save("C:\\Todolist2.xlsx")
os.startfile("C:\\Todolist2.xlsx")
currentFD = modDate
答案 0 :(得分:0)
你似乎有两个不同的问题,但它们可能是相关的。
由于您在C:\Todolist2.xlsx
上给出了Permission Denied错误的回溯,让我们看一下。
在Windows上,许多程序在打开文件时会锁定它。对于“应用程序”程序(如Excel和记事本)尤其如此。如果一个程序锁定了文件,则尝试打开该文件以覆盖它的任何其他程序将收到权限错误。
这正是您所看到的:第一次,您的代码覆盖Todolist2.xslx
,然后使用startfile
告诉Excel(或某些已注册Excel文件的应用程序)打开它,哪个有效。然后它尝试覆盖同一个文件,Excel可能仍然锁定并打开,但失败了。
根据您实际尝试在此处执行的操作,有一些可能的解决方法:
Todolist2.xlsx
复制到临时文件,然后暂时启动。Todolist2.xlsx
,Todolist2-1.xlsx
等,并继续打开它们。autogui
)使Excel打开文件的副本,而不是打开文件本身。subprocess.Popen
打开该文件,这样您就可以将其删除并启动一个新文件。