【问题标题】:How to create a table with clickable hyperlink to a local file in pandas & Jupyter Notebook如何在 Pandas 和 Jupyter Notebook 中创建带有指向本地文件的可单击超链接的表
【发布时间】:2019-01-21 21:20:15
【问题描述】:

我从这篇文章中了解到,我可以链接到 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})

【问题讨论】:

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


    【解决方案1】:

    您的浏览器实际上阻止了这一点。您可能会在浏览器的开发人员工具(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})
    

    【讨论】:

    • 谢谢。我测试了您的代码,它解决了问题的第一部分。但是,现在我从 Jupyter Notebook 收到一条错误消息,提示“Jupyter Notebook 无法打开此文件类型”。是否有使用默认应用程序(在本例中为 Word)打开文件的简单方法?或者,我是否仅限于与 Jupyter Notebook 兼容的文件类型?
    • 很奇怪,我无法复制您的错误消息。该代码在我的计算机(Mac 和 Windows)上都可以正常工作,因为 .docx 格式为 jpg/png
    • 感谢您的帮助。我有一个奇怪的问题 - 当我单击数据框中的链接(导致本地 html 文件)时,它们不会显示。但是,如果我复制粘贴 URL - 它可以工作。我正在使用火狐。知道为什么会这样吗?
    猜你喜欢
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多