2 回答
TA贡献1829条经验 获得超13个赞
我有点晚了,但我终于想通了。出于安全原因,Javascript 本身无法打开文件资源管理器。然而,javascript 可以在 Jupyter notebook() 中执行 python 代码,python 可以使用(等)Jupyter.notebook.kernel.execute打开 Windows 资源管理器。os.startfile('.')subprocess.run
下面是代码。linux 一个按预期工作正常,但随着 windows 资源管理器打开但不会进入用户焦点,它还会显示图标后面的橙色蜂鸣声表明它应该没问题。
import pandas as pd
import os
import subprocess
windowsv1 = """
<p onclick="Jupyter.notebook.kernel.execute(`os.startfile('C:\\Users')`)">File Explorer.</p>
"""
windowsv2 = """
<p onclick="Jupyter.notebook.kernel.execute(`subprocess.run(['explorer', 'C:\\Users'])`)">File Explorer.</p>
"""
linux = """
<p onclick="Jupyter.notebook.kernel.execute(`subprocess.call([opener, r'/home/equinox'])`)">File Explorer.</p>
"""
def make_clickable(url):
return windowsv2
df = pd.DataFrame({'dir': '.'}, index=[0])
styled = df.style.format({'dir': make_clickable})
display(styled)
TA贡献1951条经验 获得超3个赞
我对此不是 100%,但我认为这将取决于您使用的浏览器。此外,我认为大多数浏览器都会阻止这种行为,并且不允许网页链接打开您的文件浏览器。
如果我错了,请有人纠正我。
如果您安装 Chrome 浏览器扩展程序,则可以执行此操作。只需点击以下链接。在您的代码对我有用之后。
向下滚动到标题“从 Chrome 打开任何本地文件”。
按照所有步骤
安装浏览器扩展(和额外的安装文件)后不要忘记重新启动 Chrome
添加回答
举报