如何用Python实现在Azure Jupyter笔记本中打开的文件对话框?
我的代码:如何用Python实现在Azure Jupyter笔记本中打开的文件对话框?,python,azure,jupyter-notebook,jupyter-kernel,azure-notebooks,Python,Azure,Jupyter Notebook,Jupyter Kernel,Azure Notebooks,我的代码: %gui qt from PyQt5.QtWidgets import QFileDialog def gui_fname(dir=None): """Select a file via a dialog and return the file name.""" if dir is None: dir ='./' fname = QFileDialog.getOpenFileName(None, "Select data file...",
%gui qt
from PyQt5.QtWidgets import QFileDialog
def gui_fname(dir=None):
"""Select a file via a dialog and return the file name."""
if dir is None: dir ='./'
fname = QFileDialog.getOpenFileName(None, "Select data file...",
dir, filter="All files (*);; SM Files (*.sm)")
return fname[0]
from IPython.display import display
button = widgets.Button(description="Open The File !!")
button.style.button_color = 'yellow'
display(button)
def on_button_clicked(b):
print("Button clicked.")
f=gui_fname()
#import fileplot
#fileplot.load_file(f)
button.on_click(on_button_clicked)
#b1 = Button(description='Open File !!')
#b1.style.button_color = 'yellow'
#b1.on_click(on_button_clicked)
#b1
问题:
它在本地pc上运行良好
python版本2.7
操作系统Linux
但是,当我试图在Azure Jupyter笔记本中远程实现它时,每次我运行代码时,它的内核都会死掉,我无法得到结果。
有没有其他方法可以在ipython widgets中使用html5小部件实现文件对话框
我需要什么
我需要用户选择他/她的电脑中本地可保存的文件。1
实际上,您不能在Azure Jupyter笔记本上使用任何本机GUI API,因为Azure Jupyter笔记本在远程Linux服务器上运行,没有任何GUI支持,而且它是用于远程访问的web应用程序 所以,如果您想为客户端用户显示一个文件对话框,HTML文件对话框是您唯一的选择。简单的解决方案是使用
IPython
模块的display
和HTML
类来显示选择文件
按钮,请参见下面的代码和结果
from IPython.display import display, HTML
display(HTML("""
<input type="file" name="myfile">
"""))
从IPython.display导入显示,HTML
显示(HTML(“”)
"""))
结果是:
对于更复杂的情况,您可以参考这些博客并创建自己的博客。然而,目前还没有一个服务来接收和保存上传文件,需要自己实现。或者,您可以简单地为IPython使用名为
fileupload
(,)的现有项目,该项目是“一个IPython笔记本小部件,用于上载文件,使用。”实际上,您不能在Azure Jupyter笔记本上使用任何本机GUI API,由于Azure Jupyter笔记本在远程Linux服务器上运行,没有任何GUI支持,因此它是一个用于远程访问的web应用程序
所以,如果您想为客户端用户显示一个文件对话框,HTML文件对话框是您唯一的选择。简单的解决方案是使用IPython
模块的display
和HTML
类来显示选择文件
按钮,请参见下面的代码和结果
from IPython.display import display, HTML
display(HTML("""
<input type="file" name="myfile">
"""))
从IPython.display导入显示,HTML
显示(HTML(“”)
"""))
结果是:
对于更复杂的情况,您可以参考这些博客并创建自己的博客。然而,目前还没有一个服务来接收和保存上传文件,需要自己实现。或者,您可以简单地为IPython使用一个名为
fileupload
(,)的现有项目,该项目是“一个IPython笔记本小部件,用于上载文件,使用。”我使用了html,但我只获取所选的文件名,我希望文件路径在其中不可用。你知道如何获取文件路径吗?我的问题是我想选择一个文件,然后我将如何读取它,因为我只获取文件名。在选择文件后,我的问题是如何通过pandas读取python中的文件??它需要文件路径,但它只给了我文件名。我使用了html,但我只得到了选定的文件名,我想要的文件路径在其中不可用。你知道如何获取文件路径吗?我的问题是我想选择一个文件,然后我将如何读取它,因为我只获取文件名。在选择文件后,我的问题是如何通过pandas读取python中的文件??它需要文件路径,但它只给了我文件名。