files.exclude 使用 minimatch glob 模式隐藏 .pyc 文件,必须写 **/*.pyc 才生效;*.pyc 仅匹配根目录,.pyc 无效;规则优先采用工作区设置(.vscode/settings.json),修改后需刷新窗口或手动折叠展开父文件夹。

files.exclude 能隐藏 .pyc 文件,但路径写法必须是 glob 模式
直接在设置里搜 files.exclude,点“在 settings.json 中编辑”,添加类似 "**/*.pyc" 的规则即可。VSCode 不支持正则,只认 minimatch 风格的 glob:星号 * 匹配单层任意字符,双星号 ** 匹配多层目录,? 匹配单个字符。写成 *.pyc 或 .pyc 是无效的——前者只匹配根目录下的 .pyc,后者根本不会被识别为通配路径。
-
"**/*.pyc"✅ 隐藏所有层级的 .pyc 文件(最常用) -
"**/__pycache__/**"✅ 隐藏整个__pycache__目录(注意末尾/**) -
"src/**/*.pyc"✅ 只隐藏src下的 .pyc,不影响其他目录 -
"!mylib/utils.pyc"✅ 例外规则:保留某个特定 .pyc(需放在正向规则之后)
为什么加了规则却还看到 .pyc?先检查作用域和刷新行为
改完 settings.json 后文件没消失,大概率不是规则写错了,而是配置没落到正确位置。VSCode 优先读取工作区设置(即项目根目录下的 .vscode/settings.json),而不是用户级设置。如果你在全局设置里加了 files.exclude,但当前打开的是一个带 .vscode 文件夹的项目,那你的规则就被覆盖了。
- 确认右下角状态栏显示的是「工作区设置」而非「用户设置」
- 如果项目已有
.vscode/settings.json,直接在里面补全files.exclude对象,别只写单个字段 - 保存后,已展开的父文件夹可能不会自动收起,手动折叠再展开一次,或按
Ctrl+R刷新窗口 - 别用
files.watcherExclude替代——它只影响文件变更监听,对资源管理器无用
隐藏 .pyc 后,搜索、调试、Git 全都不受影响
files.exclude 是纯 UI 层过滤,和文件系统完全无关。你仍然能:
- 用
Ctrl+P快速打开 .pyc 文件(只要没同时配search.exclude) - 在终端里
python script.py正常运行,哪怕它生成了 .pyc - Git status 显示所有变更,包括 .pyc 的增删(除非你 .gitignore 里也写了)
- 调试器设断点、跳转定义、查看引用,全部照常工作
真正容易被忽略的是:如果你依赖侧边栏拖拽文件进终端或调试控制台,隐藏后就得改用快捷键操作——视觉清爽了,但交互习惯得同步调整。











