2016-09-14 10 views
2

私はJupyterでファイルをアップロードするためにthis snippetを訪れましたが、コードを実行するマシンにこのファイルを保存する方法や最初の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 
関連する問題