使用Python清理%temp%文件夹时遇VS Code文件占用权限错误如何解决
清理Windows临时文件夹占用报错解决方案
你遇到的权限报错本质是Windows操作系统会禁止删除被正在运行的进程持有的文件/文件夹,当前报错触发原因是VS Code正在占用目标临时文件,持有文件句柄导致删除操作被拦截。
原脚本没有异常处理逻辑,遇到单个无法删除的文件就会直接终止运行,剩余可清理的内容也无法继续处理。
优化后可直接运行的脚本
优化后的脚本会自动跳过无权限/被占用的资源,同时兼容所有Windows用户的临时目录路径,无需写死绝对路径:
import os import shutil # 自动获取当前用户的Temp目录路径 temp_path = os.environ.get("TEMP") for root, dirs, files in os.walk(temp_path): # 清理临时文件 for file in files: path = os.path.join(root, file) try: os.remove(path) # 捕获权限错误、文件占用、文件不存在等各类删除异常 except (PermissionError, OSError): continue # 清理临时文件夹 for dir in dirs: path = os.path.join(root, dir) try: shutil.rmtree(path) except (PermissionError, OSError): continue
可选补充方案
- 如果需要清理被VS Code占用的临时文件,先完全关闭VS Code后再运行脚本即可,不建议强行终止VS Code进程,可能导致未保存的代码丢失
- 如果你需要确认具体是哪些文件被占用,可以在异常捕获分支添加打印逻辑,输出无法删除的文件路径,手动排查占用进程
内容的提问来源于stack exchange,提问作者Adrika Bhadauria
相关产品推荐
相关产品推荐

