使用shutil.rmtree和os.mkdir覆盖目录有时会显示“访问被拒绝”错误

TuT*_*Tan 5 python shutil python-3.x

我的代码:

if os.path.exists(myDir):
    shutil.rmtree(myDir)
os.mkdir(myDir)
Run Code Online (Sandbox Code Playgroud)

问题:如果myDir不存在,它将始终起作用。如果myDir存在,则有时会引发错误,有时会起作用。

错误日志:

os.mkdir(myDir)
PermissionError: [WinError 5] Access is denied: 'myDir'
Run Code Online (Sandbox Code Playgroud)

我的猜测:当我调用os.mkdir时,有时候shutil.rmtree尚未完成执行/尚未释放目录权限。因此,错误。

有什么方法可以确保在调用os.mkdir之前完全执行shutil.rmtree?

小智 5

所以我遇到了同样的问题。我一直在使用的是shutil.rmtree. 我认为几乎所有导致您的计算机使用时钟周期的事情都可以。所有代码:

import os 
import shutil 
import time

dataDir = 'C:/Data/'
if os.path.exists(TEMPDIR):
    shutil.rmtree(TEMPDIR)
time.sleep(.0000000000000001)
os.makedirs(TEMPDIR)
Run Code Online (Sandbox Code Playgroud)