给定一个在外部服务器上运行的iPython笔记本,是否有方法触发文件下载?
我希望笔记本能够将外部服务器上的文件下载到本地呈现笔记本的位置,或者从笔记本工作区执行直接字符串转储到文本文件中,本地下载。
一、 E.一个强大的工具是一个笔记本,它可以从数据库中查询、更改数据,并将查询结果下载为CSV文件。
一个快速的实验表明,包含以下内容的单元格会呈现一个下载文件的链接。我希望有一个比将数据呈现到html框架中更干净的解决方案。
%%html
<a href="data:application/octet-stream,'string of things'">Download a file</a>
hublb库中有一个简短的实现
https://github.com/hubzero/hublib/blob/master/hublib/ui/download.py
他们有几个记录在案的例子。(如果要自定义回调函数,请使用cb参数。)
https://github.com/hubzero/hublib/blob/master/examples/download.ipynb
或者,如果文件不是太大,因此适合base64编码。这只适用于“最近的浏览器”,但ipynb用户可能会有一个。此示例使用JSON数据。
from IPython.display import display, HTML
import json
import base64
encoded = base64.b64encode(json.dumps(data).encode('utf-8')).decode('utf-8')
HTML(f'<a href="data:application/json;base64,{encoded}" download="download.json">download</a>')
我从评论中得到了一个有效的答案<代码>文件链接(code>FileLink)完成了这项工作,它能够从笔记本下载文件。
from IPython.display import display, FileLink
local_file = FileLink('./demo.xlsx', result_html_prefix="Click here to download: ")
display(local_file)
为了完整起见,这里有一个与FileLinks
类似的示例:
from IPython.display import display, FileLinks
local_file = FileLinks('./data/', result_html_prefix="Click here to download: ")
display(local_file)
它不是很漂亮,所以会喜欢一些关于造型的建议...
我运行一个iPython笔记本服务器,希望用户能够下载一个作为csv文件的pandas dataframe,这样他们就可以在自己的环境中使用它。没有个人数据,所以如果解决方案包括在服务器上编写文件(我可以这样做),然后下载该文件,我很乐意这样做。
笔记本格式非常适合版本控制:如果想要对笔记本和输出进行版本控制,那么这就很好地工作了。当你只想对输入进行版本控制,而不包括单元输出(也就是“构建产品”)时,麻烦就来了,这些单元输出可以是大的二进制blob,特别是对于电影和情节来说。特别是,我正在努力找到一个好的工作流程,它: 允许我在包含或排除输出之间进行选择, 防止我在不想要输出时意外提交输出, 允许我在本地版本中保留输出, 允许我使用版本控制
什么是保持IPython笔记本版本控制的好策略? 笔记本格式非常适合进行版本控制:如果想要对笔记本和输出进行版本控制,那么这种方式非常有效。当人们只想对输入进行版本控制时,麻烦就来了,不包括单元输出(也称为“构建产品”),单元输出可以是大的二进制blob,尤其是电影和情节。特别是,我试图找到一个好的工作流程: 允许我在包括或排除输出之间进行选择, 防止我在不需要时意外提交输出, 允许我将输出保存在
问题内容: 我正在使用内联模式下的IPython Notebook和plot命令绘制一个NumPy值数组。 结果输出为: 然后,我的图显示在这些输出线的下方。 有没有办法只显示图并从输出中隐藏? 问题答案: 您可以使用分号结束行。这样可以在生成图时抑制不必要的输出: 通常,使用分号可以阻止IPython从代码块的该行打印任何输出值。例如,执行包含代码的单元将不会输出。 另一种方法是将变量绑定到图:
如何在IPython笔记本中显示LaTeX代码?
问题内容: 在IPython / Jupyter Notebook中运行的大多数语言内核的错误报告都指出发生错误的行;但是(至少默认情况下)在笔记本电脑中未显示行号。 是否可以将行号添加到IPython / Jupyter Notebook? 问题答案: -在CodeMirror区域中切换行号。有关其他键盘快捷键,请参见快速帮助。 详细信息- (或)将您带入命令模式,然后按键应切换当前单元格行号的