You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter/Lab:Notebook远程文件浏览及路径获取方案咨询

刚好我之前也折腾过类似的需求,来给你分享两个实用的解决方案:

一、维护中且带文档的开源Jupyter交互文件选择组件

这些组件能帮你在Notebook里直接浏览(远程)文件系统并选择数据集,不用手动改路径字符串:

  • ipyfilechooser
    这是我最常用的选项,基于ipywidgets开发,在经典Notebook和JupyterLab里都能跑,维护状态很稳定,文档也写得很清楚。它支持本地文件浏览、自定义文件过滤、设置初始目录,要是你把远程文件系统(比如SFTP、S3)挂载成了本地目录,也能直接用。

    快速上手代码:

    from ipyfilechooser import FileChooser
    
    # 初始化选择器,默认打开当前Notebook所在的目录
    fc = FileChooser('.')
    # 可以加过滤规则,比如只显示CSV和JSON文件
    fc.filter_pattern = ['*.csv', '*.json']
    # 显示交互组件
    display(fc)
    
    # 用户选完文件后,直接取路径就行
    if fc.selected:
        print(f"选中的数据集路径:{fc.selected_path}")
    
  • jupyterlab-filechooser(JupyterLab专属)
    如果你只在JupyterLab环境下用,这个扩展更贴合JupyterLab的原生风格,还能直接支持JupyterLab集成的远程存储(比如S3、Google Drive)。安装后通过widget调用就行,文档也比较完善。

    安装命令:

    pip install jupyterlab-filechooser
    jupyter lab build
    
二、在JupyterLab文件浏览器中获取选中文件的相对路径

这个需求需要结合前端和Python内核的交互,给你一个简单的实现方法,不用装额外扩展:

  1. 在Notebook的单元格里运行这段JavaScript代码,它会自动获取选中文件的路径,计算相对当前Notebook的路径,然后传给Python变量:

    // 获取文件浏览器中选中的第一个文件
    const selectedItem = document.querySelector('.jp-DirListing-item.jp-mod-selected');
    if (selectedItem) {
        const selectedPath = selectedItem.dataset.path;
        // 获取当前Notebook的完整路径
        const notebookPath = Jupyter.notebook.notebook_path;
        // 计算相对路径(JupyterLab内置了Node.js的path模块)
        const relativePath = require('path').relative(
            require('path').dirname(notebookPath),
            selectedPath
        );
        // 把结果传给Python内核的变量
        IPython.notebook.kernel.execute(`selected_relative_path = "${relativePath}"`);
        console.log(`相对路径已传入Python:selected_relative_path = ${relativePath}`);
    } else {
        console.log("请先在文件浏览器里选中一个文件哦");
    }
    
  2. 然后在Python单元格里直接用这个变量就行:

    print(f"选中文件相对当前Notebook的路径:{selected_relative_path}")
    

注意:这个方法依赖JupyterLab的DOM结构,如果以后JupyterLab更新了界面类名,可能需要调整选择器。要是你需要更稳定的方案,可以考虑写个简单的JupyterLab扩展用官方API,但日常用上面的方法足够方便了。

内容的提问来源于stack exchange,提问作者AstrOne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:57:37