您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中运行shutil.rmtree(d)后,权限被拒绝执行os.mkdir(d)

在Python中运行shutil.rmtree(d)后,权限被拒绝执行os.mkdir(d)

我想到了三件事:

Windows本身会延迟某些文件操作以保留元数据。例如,如果您重命名文件并在其位置创建另一个文件,则Windows会在一个时间窗口中将诸如ACL之类的内容传输到新文件中。这是一个功能”,即使在删除文件之前写入新文件的程序中也保留了此元数据,以便在中间出现故障时不会丢失数据。

恶意软件扫描程序有时会涉入文件系统操作并执行文件扫描,以搜索恶意软件(或政府批判性文本,如果您偏执狂,甚至可能不是偏执狂)。在该扫描过程中,对文件的某些其他访问被阻止。

最后,我不确定如何shutil.rmtree()实现,但是在Windows下,某些树操作实际上不是由OS内核而是由外壳程序(即Explorer)实现的,并且它们可以异步执行,这将解释一个很短的时间窗口即使调用已经返回,路径仍然被阻塞。

我认为,例如Subversion或Apache Portable Runtime偶然发现了同一问题,并通过延迟重试来解决该问题。这种解决方案没有赢得选美比赛,但似乎可以胜任工作。

python 2022/1/1 18:43:34 有289人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶