在iPython Notebook中下载触发器文件

时间:2014-10-21 23:11:17

标签: python ipython ipython-notebook

鉴于在外部服务器上运行的iPython笔记本,有没有办法触发文件下载?

我希望能够让笔记本能够将生成在外部服务器上的文件下载到本地呈现笔记本的位置,或者从笔记本工作区执行直接字符串转储一个文本文件,在本地下载。

即。一个强大的工具将是一个Notebook,可以从数据库查询,更改数据,并将查询结果下载为CSV文件。

Notebook

快速实验表明,包含以下内容的单元格会显示下载文件的链接。我希望有一个更清晰的解决方案,而不是将数据渲染到HTML框架中。

%%html
<a href="data:application/octet-stream,'string of things'">Download a file</a>

2 个答案:

答案 0 :(得分:11)

我从评论中得到了一个可行的答案。 FileLink完成了这项工作,即能够从笔记本电脑下载文件。

from IPython.display import display, FileLink

local_file = FileLink('./demo.xlsx', result_html_prefix="Click here to download: ")
display(local_file)

enter image description here

为了完整起见,下面是与FileLinks类似的示例:

from IPython.display import display, FileLinks

local_file = FileLinks('./data/', result_html_prefix="Click here to download: ")
display(local_file)

enter image description here

它不是很漂亮,因此喜欢一些样式建议。

答案 1 :(得分:-4)

您可以使用urllib库来下载文件或请求网址。

testfile = urllib.URLopener()
testfile.retrieve("http://exmaple.com/file.txt", "file.txt")