无法删除Windows 7中的测试文件夹

2024-09-28 21:06:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样的项目设置

project/src/test/python/main.py
project/test-output

我想删除主测试脚本,然后重新创建测试输出文件夹。

所以我把代码放在那里。

^{pr2}$

但当我用

d:\projects\thisproject>python src\test\python\main.py

我收到来自windows的“拒绝访问”错误。[错误5]

怎么解决这个问题?

mkdir命令工作得很好很难。


Tags: 项目代码pytestsrcproject脚本文件夹
3条回答

最有可能的是使用文件夹-打开位于该文件夹内的文件,或者将该文件夹或其子文件夹作为其当前工作目录。在

Windows只将文件/目录标记为“关闭时删除”,与Unix不同,取消链接会立即从视图中删除项目。请参阅MSDN中的Remove Directory函数的文档。因此,如果任何进程(例如浏览器窗口、全文索引器或病毒扫描程序)仍有打开的文件句柄,则失败。在

因此,即使在删除时忽略错误,您也将在os.mkdir步骤中失败。一个简单的修复方法是不重新创建目录,而只是删除其所有内容。另一种方法是等待几秒钟后重试该操作。在

绕过这个限制的最好方法是每次运行使用不同的输出文件夹(通过tempfile.makedtemp())。当最后一个引用消失时,delete-than就会启动,但是您的重新创建永远不会失败。在

我最近看到了舒蒂尔.rmtree()我自己在Windows7下,也是在从单元测试中创建和销毁测试文件夹时。而且,不,没有对目录或其中任何内容的活动引用,甚至没有资源管理器窗口。我的“解决方案”(如果你可以这么说)是:

shutil.rmtree("my/test/dir", ignore_errors=True)

不完全是一件美丽的事情,但它为我解决了问题。在

顺便说一句,这是一台64位的Windows7机器,在一个固态硬盘上。一位同事报告了与舒蒂尔.rmtree()删除另一台计算机上Windows共享上的目录时。我有一种感觉,Windows正在这里缓存一些东西,如果只是短暂的。在

相关问题 更多 >