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
添加回答
舉報