如何在Pandas和Jupyter Notebook中创建具有可单击超链接的链接到本地​​文件的表

时间:2018-08-15 00:00:19

标签: python python-3.x pandas jupyter-notebook

从这篇文章中我了解到可以链接到Jupyter Notebook中的网站: How to create a table with clickable hyperlink in pandas & Jupyter Notebook

因此,我尝试修改代码以创建带有本地文件链接的数据框。但是,当我单击下面代码中的超链接时,什么也没发生。

如何修复下面的代码以使超链接正常工作?

import os
import pandas as pd

data = [dict(name='file1', 
        filepath='C:/Users/username/Documents/file1.docx'),
        dict(name='file2', 
        filepath='C:/Users/username/Documents/file2.docx')]

df = pd.DataFrame(data)

def make_clickable(url):
    name= os.path.basename(url)
    return '<a href="file:///{}">{}</a>'.format(url,name)

df.style.format({'filepath': make_clickable})

enter image description here

1 个答案:

答案 0 :(得分:2)

您的浏览器实际上阻止了此操作。您可能会在浏览器的开发人员工具(ChromeFirefoxSafari)中看到类似“不允许加载本地资源”的错误消息。更改此设置将使您面临严重的安全风险。

另一种选择是将要访问的文件放在Jupyter Notebook所在的工作目录中。例如,如果在工作目录中添加一个名为“ Documents”的文件夹,则可以链接到以下文件:

http://localhost:8888/notebooks/Documents/file1.docx

您的代码应为:

import os
import pandas as pd

data = [dict(name='file1', 
    filepath='Documents/file1.docx'),
    dict(name='file2', 
    filepath='Documents/file2.docx')]

df = pd.DataFrame(data)

def make_clickable(url):
    name= os.path.basename(url)
    return '<a href="{}">{}</a>'.format(url,name)

df.style.format({'filepath': make_clickable})