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)
我正在 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)