Python 为什么删除一个目录结构,然后立即重新创建它会引发异常?
我已将我的问题简化为:Python 为什么删除一个目录结构,然后立即重新创建它会引发异常?,python,windows,filesystems,Python,Windows,Filesystems,我已将我的问题简化为: import os, shutil shutil.rmtree("wtf", True) os.makedirs("wtf") 现在,当我运行此命令时,有时会出现以下错误: Traceback (most recent call last): File "wtf.py", line 4, in <module> os.makedirs("wtf") File "C:\Program Files (x86)\Python34\lib\os.p
import os, shutil
shutil.rmtree("wtf", True)
os.makedirs("wtf")
现在,当我运行此命令时,有时会出现以下错误:
Traceback (most recent call last):
File "wtf.py", line 4, in <module>
os.makedirs("wtf")
File "C:\Program Files (x86)\Python34\lib\os.py", line 244, in makedirs
mkdir(name, mode)
PermissionError: [WinError 5] Access is denied: 'wtf'
回溯(最近一次呼叫最后一次):
文件“wtf.py”,第4行,在
os.makedirs(“wtf”)
makedirs中的文件“C:\Program Files(x86)\Python34\lib\os.py”,第244行
mkdir(名称、模式)
PermissionError:[WinError 5]访问被拒绝:“wtf”
什么原因可能导致这种情况?如果不是立即发生错误,例如如果目录根本不存在,是否仍会发生错误?请尝试
shutil.rmtree(“wtf”)
。您将看到该目录没有被删除,因为您无法删除该目录。(如果第二个参数为True
,则错误将被忽略)@falsetru Nope。事实上,将assert(os.path.isdir(“wtf”)==False)
放在两行之间从来都不会失败。@mhlester你能重新表述一下吗,我不确定你的意思。我的意思是问,如果你只是在紧接着重新创建它时才发生错误,比如它是某种竞争条件,或者在该位置生成任何目录时发生错误