2016-09-14 7 views
2

Я столкнулся с this snippet для загрузки файлов в Jupyter, но я не знаю, как сохранить этот файл на машине, которая выполняет код, или как отображать первые 5 строк загруженного файла. В основном я ищу собственные команды для доступа к файлу после того, как он был загружен:Загрузка файлов с помощью кнопки «Обзор» в Jupyter и их использование/сохранение

import io 
from IPython.display import display 
import fileupload 

def _upload(): 

    _upload_widget = fileupload.FileUploadWidget() 

    def _cb(change): 
     decoded = io.StringIO(change['owner'].data.decode('utf-8')) 
     filename = change['owner'].filename 
     print('Uploaded `{}` ({:.2f} kB)'.format(
      filename, len(decoded.read())/2 **10)) 

    _upload_widget.observe(_cb, names='data') 
    display(_upload_widget) 

_upload() 
+0

Параметр '_cb' функция, что вызывается, когда файл загружен. В этом примере он не хранит данные в любом месте, поэтому он доступен только вне функции. Вы можете сохранить его в глобальной переменной, чтобы впоследствии получить доступ к коду. –

ответ

2

_cb вызывается, когда загрузка заканчивается. Как описано в комментарии выше, вы можете записать в файл там или сохранить его в переменной. Например:

from IPython.display import display 
import fileupload 

uploader = fileupload.FileUploadWidget() 

def _handle_upload(change): 
    w = change['owner'] 
    with open(w.filename, 'wb') as f: 
     f.write(w.data) 
    print('Uploaded `{}` ({:.2f} kB)'.format(
     w.filename, len(w.data)/2**10)) 

uploader.observe(_handle_upload, names='data') 

display(uploader) 

После завершения загрузки, вы можете получить доступ к имени файла, как:

uploader.filename