强制删除python中的windows目录

时间:2011-01-12 19:15:25

标签: python windows

  

可能重复:
  DirectoryInfo.Delete(True) Doesn't Delete When Folder Structure is Open in Windows Explorer

伙计们,我正在编写一个python测试工具,项目的一部分涉及卸载一个应用程序,然后每晚重新安装它。部分卸载任务涉及删除数据目录。在白天,测试人员/开发人员将登录计算机,偶尔会打开命令提示符和/或日志文件。这会导致我的脚本失败,因为如果另一个进程有句柄,Windows将不允许我删除文件。

我想知道是否可以获取保存在文件中的进程的pid,以便我可以使用WMI或类似的东西来终止进程?我想这样做而不会让人退出。

如果不可能那么有没有办法,从python,强制注销所有用户,以获得一个系统,我的脚本可以继续工作而不等待我出现并杀死进程/注销用户?

非常欢迎任何建议。我不是一位经验丰富的Windows程序员。

1 个答案:

答案 0 :(得分:1)

所以看起来sysinternals提供了解决方案。

handle.exe完成这项工作。

进行系统调用(例如python中的子进程模块)并在输出中搜索您要删除的目录。获取pid然后使用另一个系统调用psKill.exe来终止进程。

我还没有编写代码,但是我按照命令执行了这个过程并且它有效。使用对psTools进行系统调用的任何编程语言来编写脚本应该是微不足道的。