如何解决PermissionError: [WinError 32] 文件被占用无法删除问题?
无法删除目录:PermissionError: [WinError 32] 被其他进程占用
我之前询问过该问题但未找到解决方案,尝试了shutil、pathlib等多种方法均无效,现求助各位。
错误信息
Traceback (most recent call last): File "C:\Test.py", line 304, in <module> dir_path.rmdir() # remove directory File "C:\Program Files\Python310\lib\pathlib.py", line 1213, in rmdir self._accessor.rmdir(self) PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Test\\Folder2'
代码
from pathlib import Path dir_path = Path.home() / 'C:/Test/Folder1/' dir_path.rmdir() # remove directory dir_path = Path.home() / 'C:/Test/Folder2/' dir_path.rmdir() # remove directory
解决建议
- 确认Folder2是否被其他程序占用:比如资源管理器、编辑器、终端等是否打开了该目录或其中的文件,关闭相关进程后重试。
- 检查代码中是否存在未关闭的文件句柄:如果代码里打开过该目录下的文件但没正确关闭(比如没调用close(),或未用with语句管理文件),会导致目录被占用,修复文件操作逻辑后再尝试删除。
- 尝试用shutil.rmtree()删除:rmdir()仅支持删除空目录,若目录非空或存在隐性占用,可尝试:
import shutil shutil.rmtree('C:/Test/Folder2') - 重启Python进程或电脑:隐性的进程占用无法通过常规方式排查时,重启能强制释放资源。
内容的提问来源于stack exchange,提问作者JoeCastro
相关产品推荐
相关产品推荐

