在 Jupyter 中使用浏览按钮上传文件并使用/保存它们

新手上路,请多包涵

我遇到了 这个 在 Jupyter 中上传文件的片段,但是我不知道如何在执行代码的机器上保存这个文件,或者如何显示上传文件的前 5 行。基本上我正在寻找用于在文件上传后访问文件的正确命令:

 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()

原文由 Mona Jalal 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 780
1 个回答

_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

原文由 minrk 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题