Python 删除使用 windows 资源管理器打开的目录时抛出错误

Python throws error when deleting a directory that is open with windows explorer

我正在 Python 中编写代码,我在其中检查某个文件夹是否存在;如果是这样,我将其删除并创建一个新的(同名)。代码如下:

 if os.path.exists(output_folder):
     shutil.rmtree(output_folder)  
 os.makedirs(output_folder)

此代码工作正常,当我用 windows explorer 打开特定 output_folder 时接受。当它打开时,我的代码中出现以下错误:

WindowsError: [Error 5] Access is denied: [foldername]

同时,windows explorer 将自身切换到 foldername 的父目录,并抛出错误。

有什么方法可以让python忽略错误并继续运行,还是我要求的东西由于系统原因是不可能的?

我尝试使用 shutil.rmtree(output_folder, ignore_errors=True) 但它没有任何改变。

您可以使用Python 的异常处理来捕获错误。在再次创建文件夹之前让 Windows Explorer 有机会关闭之前的短暂延迟也可能对您有益:

import shutil
import time


try:    
    shutil.rmtree(output_folder)  
except WindowsError as e:
    print("Failed to delete")       # Or just pass

time.sleep(0.5)
os.makedirs(output_folder)