Динамически обслуживать файл при загрузке с ноутбука Jupyter, размещенного снаружи

Я работаю с ноутбуком Jupyter, размещенным на внешнем сервере, то есть пользователь не имеет никакого доступа к серверу, кроме как через свой ноутбук Jupyter. Я ищу способ, с помощью которого пользователь, работающий в таком ноутбуке Jupyter, может загрузить свои результаты в виде файла, который напрямую подается с сервера Jupyter.

Вот небольшой пример, чтобы проиллюстрировать, чего я хочу достичь:

# this code runs inside a Jupyter Notebook
import pandas as pd

testdata = { 'a' : [1,2,3,4],
             'b' : ['Hotel', 'Bed', 'Beer', 'TV']}

dataset = pd.DataFrame(testdata)

Я ищу удобный для пользователя способ загрузки этого набора данных (обычно пользователь выполняет большую обработку, изменяя форму, прежде чем он будет готов загрузить данные).

Например, вот так:

mytools.download_dataframe_as_hdf(dataset)

или же

dataset.to_hdf('test.hdf', 'test')
mytools.download_file('test.hdf')

Есть ли встроенная функциональность или аккуратный способ добиться этого?

РЕДАКТИРОВАТЬ: Улучшено простое решение.

С помощью HTML из IPython.display` позволяет легко отобразить ссылку, если файл существует в файловой системе сервера.

from IPython.display import HTML

HTML('<a href="test.hdf">download hdf</a>')

Тем не менее, я хотел бы найти решение для обслуживания данных через буферизованный поток, то есть, чтобы в первую очередь избегать сброса данных в локальной файловой системе. Какие-нибудь идеи, как эта функциональность могла быть достигнута питонским способом?

0 ответов

Другие вопросы по тегам