Python:删除锁定文件

2 投票
1 回答
4822 浏览
提问于 2025-04-18 17:13

我该如何在Windows上用Python删除一个被锁定的文件呢?

看起来很简单,但实际上并不奏效:

  import os
  os.remove("test_file.csv")
  Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
   WindowsError: [Error 32] The process cannot access the file because it is being
   used by another process: 'test_file.csv'

1 个回答

2

如果你想强制关闭正在使用的文件句柄,以便可以删除这个文件,你可以使用微软的handle工具,把文件名作为参数传进去(这样可以找到所有包含这个字符串的文件句柄),然后再用handle工具,选择-c选项,指定要关闭的具体句柄和它所属的进程ID。

我以前用过这个方法,成功地在一些情况下强制关闭了某个文件或文件夹的活动句柄,这样我就可以继续进行其他操作。

不过,要记住,正如handle的文档所说:

警告:关闭句柄可能会导致应用程序或系统不稳定。

你可以使用subprocess.check_output来调用handle工具。

更多关于subprocess的信息

撰写回答