【发布时间】:2020-12-05 01:02:33
【问题描述】:
有没有办法在 Jupyter 笔记本中显示数据框,以便单击单元格在给定目录中打开 Windows 资源管理器(或任何其他本机资源管理器)?
我试过了
def make_clickable(url):
return f'<a href="{url}" target="_blank">{url}</a>'
df = pd.DataFrame({'dir': '.'}, index=[0])
styled = df.style.format({'dir': make_clickable})
display(styled)
df = pd.DataFrame({'dir': 'file:///C:/'}, index=[0])
styled = df.style.format({'dir': make_clickable})
display(styled)
前者打开一个新的浏览器选项卡,其中显示 Jupyter 树(在正确的相对位置,如果我用另一个相对路径替换 .)。
后者不做任何事情。如果我右键单击在新选项卡中打开,它会给出about blank#blocked,如果我将它复制并粘贴到新选项卡地址行,它会显示浏览器内置的资源管理器,而不是 Windows 资源管理器。
我尝试用_explorer.exe 替换_blank,但这并没有改变任何一种变体。
因此,这两个选项都不是我想要的。
(我知道,安全性...但是,这是完全离线设置的内部工具)
我知道从浏览器打开浏览器是有可能的,因为我可以在 Jupyter 单元格中使用os.startfile,所以我想也许有一种方法可以在单击数据框的单元格时执行任意代码?也许这需要某种小部件?
当然,我总是可以编写一个完整的 Python GUI,但我真的不想这样做。
【问题讨论】:
标签: python jupyter-notebook external