jupyter notebook 默认不显示隐藏文件是因为文件浏览器使用 os.listdir() 过滤以 . 开头的文件,这是设计选择而非 bug;可通过设置 c.notebookapp.show_hidden_files = true 并重启服务来显示,但仅对 unix 风格隐藏文件生效,且需确保路径、权限和文件名合法。

为什么 Jupyter Notebook 默认不显示隐藏文件
因为 Notebook 的文件浏览器底层调用的是 os.listdir()(非 os.scandir()),它天然过滤掉以 . 开头的 Unix/Linux/macOS 隐藏文件(如 .git、.env、.ipynb_checkpoints),Windows 上则依赖文件系统属性,但 Notebook 并不读取该属性。这不是 bug,而是设计选择:避免干扰用户日常操作。
修改配置让 .ipynb_checkpoints 等目录可见
这类目录由 Jupyter 自动创建,用于保存临时检查点,但默认被隐藏。要让它出现在 Files 页面,需手动启用:
- 编辑配置文件:
jupyter_notebook_config.py - 添加或取消注释这一行:
c.NotebookApp.show_hidden_files = True - 重启 Jupyter 服务(关闭终端再重新运行
jupyter notebook)
注意:该设置只影响 . 开头的目录/文件(如 .git、.ipynb_checkpoints),不影响 Windows 的“隐藏属性”文件。
.git 或 .env 仍不显示?检查文件权限和路径
即使启用了 c.NotebookApp.show_hidden_files = True,某些文件仍不可见,常见原因:
-
.git目录存在,但不在当前c.NotebookApp.notebook_dir指定的根目录下 —— Jupyter 只扫描该目录及其子目录 - 文件权限问题:例如在 Linux/macOS 上,若
.env所在父目录无rx权限,os.listdir()会静默跳过整个目录 - 文件名含非法字符(如
\0、控制字符)可能导致读取失败,日志中会出现OSError: [Errno 22] Invalid argument
想彻底绕过限制?用终端或 Python 脚本查看
Jupyter 的 Web UI 本身不提供强制刷新隐藏项的按钮,也不支持正则过滤。如果只是临时确认隐藏文件是否存在,更可靠的方式是:
- 在启动 Jupyter 的终端里直接运行:
ls -la(macOS/Linux)或dir /a(Windows) - 在 notebook 中执行:
!ls -la或import os; [f for f in os.listdir('.') if f.startswith('.')] - 注意:
!ls -la输出不会自动渲染为可点击链接,仅作查看用途
真正需要在 UI 中管理隐藏文件(比如删掉残留的 .ipynb_checkpoints),还是得靠配置 + 重启 —— 没有热重载开关,改完配置不重启就无效。











