【发布时间】:2015-01-23 23:21:45
【问题描述】:
我想创建一个新目录并删除旧目录(如果存在)。我使用以下代码:
if os.path.isdir(dir_name):
shutil.rmtree(dir_name)
os.makedirs(dir_name)
如果目录不存在,它可以工作。
如果目录确实存在并且程序正常运行,则会出错。 (WindowsError:[错误 5] 访问被拒绝:'my_directory')
但是,如果目录已经存在并且程序在调试模式下逐行执行,它也可以工作。我猜shutil.rmtree() 和makedirs() 在通话之间需要一些时间。
什么是正确的代码才不会产生错误?
【问题讨论】:
-
我相信您收到该错误的原因是因为您对要删除的目录没有读取权限。要授予此权限,请键入
chmod +r directory_name,您应该拥有它的权限。 -
@PiJoules 这并不能解释为什么它在调试时起作用。
标签: python